【问题标题】:UITextView textViewShouldEndEditing / textViewDidEndEditing not calledUITextView textViewShouldEndEditing / textViewDidEndEditing 未调用
【发布时间】:2011-12-19 23:52:36
【问题描述】:

我的屏幕上有几个UITextFields 和UITextViews。

尽管结束UITextField 编辑的“官方”方法是触摸键盘上的 Done 键,而 UITextView 的“官方”方法是触摸外部 Done 按钮 - 而我两者都支持 - 我无法阻止用户通过简单地触摸另一个控件来切换到另一个文本字段或文本视图。

如果当前正在编辑的控件是UITextField,这可以正常工作。当用户触摸第二个控件时,会为当前文本字段调用TextFieldDidEndEditing:,我可以处理该字段中的数据。

但是,如果当前控件是 UITextView,当用户触摸另一个控件时,textViewShouldEndEditingtextViewDidEndEditing 都不会被调用。导致它们被调用的唯一方法是在触摸第二个控件时执行显式ResignFirstResponder,但这会导致键盘被关闭,因此新的触摸被有效地忽略(用户必须再次触摸新字段继续编辑)。

有没有办法让UITextView 在另一个控件被触摸时表现得像UITextField

【问题讨论】:

  • 为我工作。你确定你设置了textView的委托吗?好的,如果它在您手动使用 resignFirstResponder 时有效,那么您可能有。

标签: iphone ios uitextview


【解决方案1】:

在 textViewShouldEndEditing 和 textViewDidEndEditing 方法中放置一个 if-else 子句。

- (void)textViewDidBeginEditing:(UITextView *)textView
{
   if (textView = (your text view property)
   {
      //do something
   }
}

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2012-09-19
    相关资源
    最近更新 更多