ios - 如果 UITextField 具有 inputAccessoryView,则 UIKeyboardDidShowNotification 选择器调用两次

标签 ios objective-c iphone nsnotificationcenter

我有一个 UIView,里面有几个 UITextField。我已经为 UIKeyboardDidShowNotification 注册了选择器。当我触摸该字段时,将调用选择器并显示键盘。如果我不调用下一个字段选择器,这是应该发生的。

现在,如果我再次执行所有操作,但将简单的 inputAccessoryView 附加到字段,就会发生一些不同的事情。每当我触摸时,都会调用字段选择器,尽管键盘已经显示。

这是 apple 的错误,还是我遗漏了什么?

最佳答案

遇到了类似的问题,额外的通知似乎是“正常的”是因为“inputView”(正如您已经推断的那样)。第一个通知包含键盘的原始大小,而第二个通知的 UIKeyboardFrameBeginUserInfoKey 部分包含键盘大小加上输入 View 的大小。我的猜测是,当它认为键盘的大小“改变”时,它会发出一条新通知,说“嘿,大小已经改变”。诡异的?是的,但据我所知这是预期的行为。

因此,如果您只想对一个使用react,则必须按该帧值进行过滤...

请参阅:dgangsta 在这里回答:(证实了我的猜测) can't get correct value of keyboard height in iOS8

关于ios - 如果 UITextField 具有 inputAccessoryView,则 UIKeyboardDidShowNotification 选择器调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618694/

相关文章:

ios - Objective-C 查找方法的调用者

iPhone应用程序崩溃: Assertion failed function evict_glyph_entry_from_strike,文件Fonts/CGFontCache.c

ios - 在文件系统中创建一个随机文件夹并保存下载的文件iOS

ios - 如何在特定的 NSString 之后从 NSString 中删除字符

ios - 可能带有加载不同 url 的菜单按钮的 webview?

objective-c - 从其他类调用方法没有任何作用?

iphone - iOS View subview 无法识别自定义类成员

ios - 我如何在Apple Developer Site上注册公司?

ios - Estimote iBeacons 未检测到

ios - 以编程方式创建 ViewController 时,如何将其 View 设置为 SKVIew 类型?