如何知道UITextView是否有焦点

JAH*_*lia 20 iphone objective-c ios

我知道becomeFirstResponder设置焦点在控件上的方法,但是如何知道该控件(例如UITextView)当前是否关注它?

编辑:问题是我希望(例如)在获得焦点时更改UITextView的背景颜色,我应该在哪里准确地调用isFirstResponder?在这种情况下我应该使用通知吗?

非常感谢提前.

Meh*_*tri 43

if([txtView isFirstResponder]){
     //Has Focus
} else {
     //Lost Focus
}
Run Code Online (Sandbox Code Playgroud)

这是UITextView的委托方法,

- (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView{
    //Has Focus
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

这是失去焦点

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
    if ([text isEqualToString:@"\n"]){
        //Lost Focus
        [textView resignFirstResponder];
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)


Bor*_*lic 6

使用 UITextField 委托方法。当 textField 获得焦点时(第一响应者)

- (void)textFieldDidBeginEditing:(UITextField *)textField; 将被解雇,

当它失去焦点时

- (void)textFieldDidEndEditing:(UITextField *)textField; 将被解雇。