16

언제 알림을받을 수 있습니까? UITextFieldbecomeFirstResponder?UITextField가 FirstResponder가 될 때 알림을받습니다.

는 내가 통지 또는 사용자가이 텍스트 필드에 첫 번째로 반응을 이벤트를 처리 취득 할 becomeFirstResponder

에 의해 처음 응답자되기 위해 설정 isFirstResponder 나처럼 확인할 수 있습니다.

감사합니다.

답변

30

당신은 텍스트 필드의 대리자를 제공해야하고이 옵션 대리자 메서드를 구현합니다

- (void)textFieldDidBeginEditing:(UITextField *)textField; 
11

UITextFieldDelegate 방법 textFieldDidBeginEditing:을 구현하는 외에, 당신은 UITextFieldTextDidBeginEditingNotification 알림을 등록 할 수 있습니다.

알림 방법이 될 수있다 :

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification { 
    UITextField *textField = (UITextField *)notification.object; 
} 
0

은 OSX를 들어 당신이 NSControlTextDidBeginEditingNotification에 의존 할 때 부작용을 가진 버튼을 알고 있어야합니다.

편집을 시작하고 일부 버튼을 누른 다음 텍스트 필드 편집을 다시 시작하면 편집을 다시 시작할 때 두 번째 NSControlTextDidBeginEditingNotification이 표시되지 않습니다.

이 문제로 인해 문제가 발생하는 경우는 UITextFieldTextDidChangeNotification 일 수 있습니다.

2

참석자가 반드시 참석해야합니다. 컨트롤러가 내 UITextField 하위 클래스의 대리인 이었기 때문에 내 상황에서는 사용할 수 없었고 자리 표시 자 텍스트를 수정해야했습니다. 대신에 나는 - (BOOL)canBecomeFirstResponder; & - (BOOL)resignFirstResponder;의 메서드를 재정의합니다. super를 부르십시오.

+0

예, super에 전화하는 것을 잊지 말고 내 문제를 해결했습니다. –

관련 문제