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

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

你可以肯定地使用一个UITextViewDelegate方法:

 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

只需返回YES并在该方法内拦截即可。 你也可以用UITextFieldDelegateUITextFields来做:

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

希望有所帮助。

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

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

如上所述,您可以覆盖becomeFirstResponder,但请注意您必须调用超类的实现。 如果你不这样做,就像popup文本字段上的键盘不会工作。 即

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

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

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

如果您并不是真的担心哪个字段处于活动状态,只要点击该字段就可以清除文本,则可以使用其中一个function。

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