我知道becomeFirstResponder
设置焦点在控件上的方法,但是如何知道该控件(例如UITextView
)目前是否关注它?如何知道UITextView是否有焦点
编辑:问题是,我想(例如)改变UITextView的背景颜色,当它收到焦点,我应该在哪里把isFirstResponder调用准确?我应该在这种情况下使用通知吗?
非常感谢。
我知道becomeFirstResponder
设置焦点在控件上的方法,但是如何知道该控件(例如UITextView
)目前是否关注它?如何知道UITextView是否有焦点
编辑:问题是,我想(例如)改变UITextView的背景颜色,当它收到焦点,我应该在哪里把isFirstResponder调用准确?我应该在这种情况下使用通知吗?
非常感谢。
if([txtView isFirstResponder]){
//Has Focus
} else {
//Lost Focus
}
这是UITextView中的委托方法,
- (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView{
//Has Focus
return YES;
}
这是失去焦点
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@"\n"]){
//Lost Focus
[textView resignFirstResponder];
}
return YES;
}
使用的UITextField委托方法。当文本框得到关注(bacame第一响应)
- (void)textFieldDidBeginEditing:(UITextField *)textField;
将被解雇,
,当它失去焦点
- (void)textFieldDidEndEditing:(UITextField *)textField;
将被解雇。
现在不能检查,但没有'isFirstResponder'属性或其他东西? –
如果不存在,则为UITextView子类添加一个ivar /属性。然后覆盖-becomeFirstResponder并设置标志。 –
哦,是的,没有注意这样的属性,是的,实际上有一个名为isFirstResponder的属性..你可以回答这个问题,所以你可能会被投票。 – JAHelia