当uitextview成为第一响应者时如何处理。我在文本视图中有文本,我想在视图变为活动时想要清除文本。我怎样才能做到这一点?提前致谢
答案 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是什么的代码的最佳位置。
如果您并不真正担心哪个字段处于活动状态,只想在点击字段后清除文本,则可以使用任一功能。
编辑:文本字段可以使用相同的方法。