使用TPKeyboardAvoidingScrollView无法正常移动键盘的文本字段

Sea*_*ean 4 iphone objective-c uiscrollview

我有一个TabBar应用程序,其中一个选项卡嵌入在NavigationController中.此特定视图是一个包含文本字段的表单.我想让TPKeyboardAvoidingScrollView在键盘进入视图时向上移动UITextFields.我已按照Github页面上的说明进行操作,但它根本不起作用.

这是我按照说明做的:

  1. 将TPKeyboardAvoidingScrollView.h和.m添加到我的项目中
  2. 在故事板上的视图中添加了UIScrollView(Xcode 4.3.1)
  3. 选中ScrollView并在检查器中将其类更改为TPKeyboardAvoidingScrollView
  4. 将所有文本字段移动到UIScrollView中

这不起作用......所以看一下示例代码,我尝试添加一些东西:

  1. 在我的视图控制器.h文件中我添加了:

    @class TPKeyboardAvoidingScrollView;

  2. 并链接ScrollView导致添加这行代码:

    @property(弱,非原子)IBOutlet TPKeyboardAvoidingScrollView*scrollView;

  3. 将TPKeyboardAvoidingScrollView.h导入到我的控制器.m文件中.

但是,其他人似乎赞不绝口的代码对我来说并不适用.

任何人都可以指出我的无能吗?在此先感谢您提供的任何帮助......

Tyl*_*mes 6

当我尝试使用这个类时,我遇到了这个确切的问题,了很多时间浪费在一些本来应该节省时间的事情上.

我在TPKeyboardAvoidingScrollView中设置了断点,并注意到它们都没有被击中.尝试了几件事后,我注意到调试窗口中有一些输出:
“Unknown class TPKeyboardAvoidingScrollView in Interface Builder file” error at runtime

在这个帖子中找到了一些有用的信息.基本上似乎文件正在优化,因为它实际上从未在代码中使用过.

为了让它再次工作,我做了几件事,其中任何一件或全部都是必要的:

  1. 单击项目大纲中的TPKeyboardAvoidingScrollView类.如果隐藏了Xcode,请在Xcode右侧显示Utilities面板,并确认文件实际上有一些目标成员资格,否则它们将无法构建.
  2. 从您正在测试的设备或模拟器中删除应用程序,以便获得新的负载.
  3. 重建项目并加载到设备/模拟器上.错误应该消失,你应该能够在TPKeyboardAvoidingScrollView类中找到断点,它现在应该全部工作.

作为替代方案,您可能需要查看jhoule提供解决方案.要点是您
[TPKeyboardAvoidingScrollView class];
向应用程序委托或代码中的其他位置添加调用:以确保代码被引用并且未进行优化.

希望有所帮助.