如何知道UITextView何时成为第一响应者
当uitextview成为第一响应者时如何处理。 我有文本视图中的文本,并希望视图变为活动时要清除文本。 我怎样才能做到这一点? 提前致谢
你可以肯定地使用一个UITextViewDelegate
方法:
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
只需返回YES并在该方法内拦截即可。 你也可以用UITextFieldDelegate
和UITextFields
来做:
- (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。
编辑:相同的方法可用于文本字段。