【问题标题】:UIKeyboardWillHideNotification and textFieldDidEndEditingUIKeyboardWillHideNotification 和 textFieldDidEndEditing
【发布时间】:2012-03-15 21:34:40
【问题描述】:

在我的一个项目中,当键盘出现并按下完成按钮时,我首先调用了 textFieldDidEndEditing,然后它会触发 UIKeyboardWillHideNotification 的目标函数。但是在我的另一个项目中,情况正好相反(通知功能然后是 textFieldDidEndEditing,这是我想要的)。为什么是这样?两者都在 iOS 模拟器 v. 5.1 上进行了测试。如何确保一个在另一个之前被调用?

【问题讨论】:

    标签: iphone objective-c ios ipad uitextfield


    【解决方案1】:

    为什么不使用

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    

    捕捉按下的完成或返回键?

    【讨论】:

    • 我已经在使用它了.. 但在此之前 UIKeyboardWillHideNotification 选择器/目标函数首先被触发,然后 textFieldDidEndDismissal 被触发。我只是很困惑是什么可能导致这种情况相反
    • UIKeyboardWillHideNotification 是通知而不是方法。这是您需要将您的类设置为侦听器,然后在发送通知时触发选择器的东西。使用委托方法 textFieldShouldReturn 的优点(在这种情况下)是 TextField 被传递到委托方法中,因此您可以确切地知道是哪个 TextField 导致它被触发。有了通知,您就会知道 ANY 类型的控件会导致键盘隐藏。
    【解决方案2】:

    在 .h 和 .m 中设置 UITextFieldDelegate :

    [self.myTextField setdelegate:self];
    

    【讨论】:

    • 在您的.h 中,设置委托。在您的.m 中,将该行放入viewDidLoad
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多