我知道将becomeFirstResponder
方法设置为控件,但是如何知道该控件(例如UITextView
)当前是否关注它?
编辑:问题是我希望(例如)在获得焦点时更改UITextView的背景颜色,我应该在哪里准确地调用isFirstResponder?我应该在这种情况下使用通知吗?
非常感谢。
答案 0 :(得分:43)
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;
}
答案 1 :(得分:4)
使用UITextField委托方法。当textField获得焦点时(bacame first responder)
- (void)textFieldDidBeginEditing:(UITextField *)textField;
将被解雇,
当它失去焦点时
- (void)textFieldDidEndEditing:(UITextField *)textField;
将被解雇。