Как узнать, имеет ли UITextView фокус или нет

Я знаю метод becomeFirstResponder, чтобы установить фокус на элементе управления, но как узнать, в данный момент этот элемент управления (например, UITextView) сосредоточен на нем или нет?

РЕДАКТИРОВАТЬ: проблема в том, что я хочу (например) изменить цвет фона UITextView, когда он получает фокус, где я должен точно поместить вызов isFirstResponder? следует ли использовать уведомления в этом случае?

благодарим заблаговременно.

Ответы

Ответ 1

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;
}

Ответ 2

Используйте методы делегата UITextField. Когда textField получил фокус (bacame first responder)

- (void)textFieldDidBeginEditing:(UITextField *)textField; будет запущен,

и когда он потерял фокус

- (void)textFieldDidEndEditing:(UITextField *)textField; будет запущен.