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

qyzbxkaa  于 2022-12-27  发布在  iOS
关注(0)|答案(5)|浏览(292)

如何处理当uitextview成为第一响应者。我在文本视图中有文本,我想当视图成为活动的想清除文本。我该怎么做呢?提前感谢

f87krz0w

f87krz0w1#

您完全可以使用UITextViewDelegate方法:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView

只需返回YES并在该方法中截取。您也可以使用UITextFieldDelegate和以下命令对UITextFields执行此操作:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
zqry0prt

zqry0prt2#

textViewShouldBeginEditing实际上在文本视图成为第一响应者之前触发。
textViewDidBeginEditing将在文本视图成为第一响应者时触发,并且将是执行需要知道活动文本视图是什么的代码的最佳位置。
如果您并不真正担心哪个字段是活动的,只是想在点击字段后清除文本,您可以使用任何一个功能。
EDIT:相同的方法可用于文本字段。

cyej8jka

cyej8jka3#

如上所述,你可以重写becomeFirstResponder,但注意你必须调用超类实现,否则,在文本字段上弹出键盘之类的操作将不起作用。

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

  return false
}
sc4hvdpw

sc4hvdpw4#

Swift 4解决方案

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

pbossiut5#

前面的答案对UITextBox来说非常有用,但是如果您有一个从NSResponder派生的自定义类,并且需要知道它何时成为第一响应者:

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

相关问题