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

时间:2011-08-11 07:17:29

标签: ios ios4 uitextview

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

5 个答案:

答案 0 :(得分:53)

您绝对可以使用UITextViewDelegate方法:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView

只需返回YES并拦截该方法。您也可以使用UITextFields

UITextFieldDelegate执行此操作
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

希望有所帮助。

答案 1 :(得分:4)

以前的答案为UITextBox做了很好的工作,但是如果你有一个从NSResponder派生的自定义类,并且需要知道它何时成为第一响应者:

-(BOOL) becomeFirstResponder
{
    // Your stuff here
    return YES;
}

答案 2 :(得分:3)

Swift 4解决方案

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {           
        return true
 }

答案 3 :(得分:2)

如上所述,您可以覆盖becomeFirstResponder,但请注意您必须调用超类实现。如果你不这样做,那么在文本字段上弹出键盘之类的东西将无法正常工作。即。

override func becomeFirstResponder() -> Bool {
  if super.becomeFirstResponder() {
    // set up the control state
    return true
  }

  return false
}

答案 4 :(得分:1)

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

一旦文本视图成为第一个响应者,

textViewDidBeginEditing将会触发,并且是执行需要知道活动textview是什么的代码的最佳位置。

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

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