如何知道UITextView何时成为第一响应者

nya*_*nev 26 uitextview ios4 ios

当uitextview成为第一响应者时如何处理.我在文本视图中有文本,我想在视图变为活动时想要清除文本.我怎样才能做到这一点?提前致谢

mig*_*647 57

你绝对可以使用以下UITextViewDelegate方法:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
Run Code Online (Sandbox Code Playgroud)

只需返回YES并拦截该方法.你也可以UITextFieldsUITextFieldDelegate和:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • @SepehrBehroozi 如果 Textview 一开始就无法编辑,为什么它会成为第一响应者? (2认同)

CSj*_*kie 6

textViewShouldBeginEditing 实际上在文本视图成为第一响应者之前触发。

textViewDidBeginEditing 将在文本视图成为第一响应者时触发,并且将是执行需要知道活动文本视图是什么的代码的最佳位置。

如果您不是真的担心哪个字段处于活动状态,而只想在点击该字段后清除文本,则可以使用任一功能。

编辑:相同的方法可用于文本字段。


kuz*_*zdu 5

Swift 4 解决方案

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {           
        return true
 }
Run Code Online (Sandbox Code Playgroud)

  • 您的意思是“textViewDidBeginEditing”吗? (3认同)