【发布时间】:2016-02-19 21:45:10
【问题描述】:
我创建了新的 Xcode 单视图项目。在界面生成器中,我添加了一个 UIScrollView 来覆盖完整的视图。在这个滚动视图上,我添加了一个 UITextField。生成的 UI 如下所示:
请注意,此时滚动视图不会滚动,因为内容仅占用视图的大小并且不会大于它。
现在,为了在编辑时将 UITextField 置于键盘顶部,我按照 Apple 在 Managing The Keyboard 页面上描述的方式进行操作。这样做之后,它给了我预期的行为,在编辑开始时将文本字段带到键盘上方,如下面的屏幕截图所示:
现在,在调用[textfield endEditing:YES] 之后,键盘会自行隐藏,但文本字段不会返回到原来的位置。它返回到略高于其原始位置的位置,现在滚动视图变得可滚动,就好像添加了一点高度一样:
注意上面截图中的滚动条!
我需要帮助在编辑结束后(当键盘隐藏时)恢复视图的原始行为,即 textField 返回到完全相同的位置并且应该发生滚动,因为它在编辑开始之前没有发生。
【问题讨论】:
-
您可以创建一个全局 int 来存储您向上推的数量,并在
UIKeyboardWillHideNotification选择器上使用它来向下推相同的数量
标签: ios objective-c uitextfield uikeyboard