Как узнать, имеет ли 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;
будет запущен.