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

时间:2014-09-02 08:07:39

标签: ios objective-c iphone nsnotificationcenter

我的UIView里面有几个UITextField。我已为UIKeyboardDidShowNotification注册了选择器。当我触摸该字段时,选择器被调用并显示键盘。如果我没有调用下一个字段选择器,那么就应该发生这种情况。

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

这是苹果的错误,还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

遇到了类似的问题,似乎是#34;正常"额外的通知是因为" inputView" (正如你已经推断的那样)。第一个通知包含键盘的原始大小,而第二个通知包含通知的UIKeyboardFrameBeginUserInfoKey部分中的键盘大小加上输入视图的大小。我的猜测是,它认为键盘的尺寸变化了#34;发出一条新的通知,说明"大小已经改变了#34;。奇怪的?是的,但据我所知,这是预期的行为。

因此,如果你只想对一个做出反应,你必须按帧值过滤......

见:dgangsta在这里回答:(确认我的猜测) can't get correct value of keyboard height in iOS8