【发布时间】:2011-07-22 19:36:27
【问题描述】:
我的视图上有几个 UITextField(每个都在一个 UITableViewCell 中)。当键盘从任何文本字段中触发时,我需要制作一些动画,主要是为了改变 UITableView 的框架。键盘隐藏时也必须如此。
我已经完成了动画,所以这不是这里的问题。
现在,我使用 NSNotificationCenter 来捕捉键盘的显示/隐藏:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
问题是当键盘可见(使用文本字段)并且我在另一个文本字段中按下时。通常这个东西键盘不会隐藏,但会保持可见。
它在 iOS 4 中运行良好,但问题出现在 3.1.3 中(这是我可以测试的版本 - 可能是 3.2 以下的任何版本)。在早于 3.2 的版本中,将焦点从一个文本字段直接更改为另一个文本字段将触发 UIKeyboardWillHideNotification 和 UIKeyboardWillShowNotification。
在没有 NSNotificationCenter 的情况下,任何人都知道在键盘真正显示/隐藏时执行某些动画的方法吗?
或者我该如何解决低于 3.2 的版本的这个问题?
谢谢。
【问题讨论】:
-
一个注意事项:几乎每个人都升级到了 iOS 4 以及那些很少下载或更新应用程序的人。一种替代方法是切换到仅支持新版本的 iOS 4。如果您的应用程序与银行应用程序同等重要,或者您有一些非常特殊的需要,请仅支持这两种应用程序。
-
@Peter:同意你的看法。只是应用程序几乎完成了。这个小问题并不是我只支持 iOS4 设备的真正原因。
标签: iphone objective-c ios4 uikeyboard ios-3.x