我有一个包含多个 UITextField
和 UITextView
的屏幕。
即使结束 UITextField
编辑的“官方”方法是触摸键盘上的 Done 键,而 UITextView
的“官方”方法是触摸外部完成按钮 - 我支持这两种 - 我无法阻止用户通过简单地触摸其他控件来切换到另一个文本字段或 TextView 。
如果正在编辑的当前控件是 UITextField
,则此方法工作正常。当用户触摸第二个控件时,为当前文本字段调用 TextFieldDidEndEditing:
,我可以处理该字段中的数据。
但是,如果当前控件是 UITextView
,当用户触摸另一个控件时,既不会调用 textViewShouldEndEditing
也不会调用 textViewDidEndEditing
。调用它们的唯一方法是在触摸第二个控件时执行显式 ResignFirstResponder
,但这会导致键盘被关闭,因此新的触摸被有效地忽略(用户必须再次触摸新字段以继续编辑)。
有没有办法让 UITextView
在触摸另一个控件时表现得像 UITextField
?
最佳答案
在 textViewShouldEndEditing 和 textViewDidEndEditing 方法中放置一个 if-else 子句。
- (void)textViewDidBeginEditing:(UITextView *)textView
{
if (textView = (your text view property)
{
//do something
}
}
关于iphone - 未调用 UITextView textViewShouldEndEditing/textViewDidEndEditing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569143/