【问题标题】:textView resignFirstResponder not firing UIKeyboardWillHideNotificationtextView resignFirstResponder 未触发 UIKeyboardWillHideNotification
【发布时间】:2014-05-03 00:27:27
【问题描述】:

我有一个 UIView,其中包含 UITexView 和一个按钮。 我有一个代表UITextViewDelegate

当我第一次在 UITextView 上设置光标时,委托函数 "textViewShouldEndEditing" 被调用,该函数触发 UIKeyboardWillShowNotification 通知。到目前为止一切顺利。

当我点击按钮时,我调用了函数[self.textView resignFirstResponder];,然后这个函数调用了代理"textViewShouldEndEditing",但是通知UIKeyboardWillHideNotification永远不会被调用。

我有一个通知监听器

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(_keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];

有什么遗漏吗???

【问题讨论】:

  • 你能展示你的 _keyboardWillHide 方法吗?
  • 我正在使用 Damiaan Twelker 的组件 github.com/datwelk/RDRStickyKeyboardView 。但是我添加了 textViewShouldEndEditing 委托来触发 UIKeyboardWillHideNotification 通知
  • 您不必使用 UIKeyboardWillHideNotification 触发任何内容。关键是注册它,它会在你需要的时候被调用。如果您使用图书馆,我相信您甚至不需要注册,图书馆会为您完成。
  • 好吧,图书馆只处理键盘会显示通知,但没有关于 textview resign 和键盘会隐藏功能! :(
  • 该库正在处理键盘将隐藏(第 555 行)。我相信两者之间存在某种冲突。

标签: ios objective-c uitextview uitextviewdelegate


【解决方案1】:

[self.view endEditing:YES];是诀窍,谢谢大家的帮助

【讨论】:

    【解决方案2】:

    您应该通过以下方式向通知中心发布通知

    [[NSNotificationCenter 默认中心] postNotificationName:@"TestNotification" 对象:自我];

    您可以通过以下方式查看是否收到通知

    if ([[通知名称] isEqualToString:@"TestNotification"]) NSLog(@"成功收到测试通知!");

    【讨论】:

    • 嗨@yashwanth777,我不想自己触发通知,我希望在我退出uitextview时触发它。
    • 所以当您辞职 textview 时,您会发布如上所示的通知,而不会调用通知中心
    【解决方案3】:

    你的代码是这样的吗,检查一下告诉我

    -(void)viewDidAppear:(BOOL)animated{
            [[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(keyboardWillHide:)
                                                         name:UIKeyboardWillHideNotification
                                                       object:nil];
    
    }
    
    -(void) keyboardWillHide:(NSNotification *)note{
            NSLog(@"test");
    
    }
    

    【讨论】:

    • 是的,我已经注册了我的通知,但是当我退出 uitextview 时,通知没有被调用。
    • 我尝试了你告诉的场景,它对我有用,告诉我你用哪种方法注册通知,并显示你的 _keyboardWillHide 实现
    • 我正在使用 Damiaan Twelker 的组件 github.com/datwelk/RDRStickyKeyboardView 。但是我添加了 textViewShouldEndEditing 委托来触发 UIKeyboardWillHideNotification 通知
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多