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

时间:2012-03-22 00:51:05

标签: iphone objective-c uiscrollview

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

这是我按照说明做的:

  1. 将TPKeyboardAvoidingScrollView.h和.m添加到我的项目
  2. 在故事板上的视图中添加了UIScrollView(Xcode 4.3.1)
  3. 选择ScrollView并在检查器中将其类更改为TPKeyboardAvoidingScrollView
  4. 将所有文本字段移动到UIScrollView
  5. 这不起作用......所以查看示例代码我尝试添加更多内容:

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

        

      @class TPKeyboardAvoidingScrollView;

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

        

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

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

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

      有人能指出我的无能吗? 提前感谢您提供的任何帮助......

2 个答案:

答案 0 :(得分:6)

我在尝试使用这个类时遇到了这个问题,花费了浪费了大量时间来节省时间。

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

我找到了一些有用的信息in this thread。基本上似乎文件正在优化,因为它实际上从未在代码中使用过。

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

  1. 单击项目大纲中的TPKeyboardAvoidingScrollView类。如果隐藏了Xcode,请在Xcode右侧显示Utilities面板,并确认文件实际上有一些目标成员资格,否则它们将无法构建。
  2. 从您正在测试的设备或模拟器中删除应用程序,以便获得新的负载。
  3. 重建项目并加载到设备/模拟器上。错误应该消失了,你应该能够在TPKeyboardAvoidingScrollView类中找到断点,它现在都可以正常工作。
  4. 作为替代方案,您可能需要查看solution provided here by jhoule。要点是你添加一个电话:
    [TPKeyboardAvoidingScrollView class];
    到您的应用程序委托或代码中的其他位置,以确保代码被引用并且未进行优化。

    希望有所帮助。

答案 1 :(得分:0)

你需要做的是转到主故事板并添加滚动视图的缺失约束,或者你可以点击故事板上的滚动视图,然后转到xcode菜单顶部的编辑器,然后去解决自动布局问题然后点击重置建议约束。运行项目。祝你好运。