コントロールにフォーカスを設定する方法は知ってbecomeFirstResponder
いますが、そのコントロール(たとえばUITextView
)が現在フォーカスを持っているかどうかを知る方法はありますか?
編集:問題は、(たとえば)フォーカスを受け取ったときにUITextViewの背景色を変更したいということです。isFirstResponder呼び出しを正確にどこに置く必要がありますか?この場合、通知を使用する必要がありますか?
よろしくお願いします。
コントロールにフォーカスを設定する方法は知ってbecomeFirstResponder
いますが、そのコントロール(たとえばUITextView
)が現在フォーカスを持っているかどうかを知る方法はありますか?
編集:問題は、(たとえば)フォーカスを受け取ったときにUITextViewの背景色を変更したいということです。isFirstResponder呼び出しを正確にどこに置く必要がありますか?この場合、通知を使用する必要がありますか?
よろしくお願いします。
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ファーストレスポンダー)
- (void)textFieldDidBeginEditing:(UITextField *)textField;
解雇されます、
そしてそれが焦点を失ったとき
- (void)textFieldDidEndEditing:(UITextField *)textField;
解雇されます。