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

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

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

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

2 ответа

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. Когда textField получил фокус (bacame first responder)

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

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

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

licensed under cc by-sa 3.0 with attribution.