2012-01-15 3 views

답변

7

NSNotificationCenter을 사용하고 UITextFieldTextDidChangeNotification을 살펴보십시오.

[[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(textFieldChanged) 
       name:UITextFieldTextDidChangeNotification 
      object:textField]; 

이제 함수 -(void)textFieldChanged;를 구현하고이 함수가 호출 될 때마다 기존의 텍스트로 UITextField에 새 텍스트를 비교한다. 변경된 것은 무엇이든 눌러 진 버튼입니다.

UITextFieldTextDidEndEditingNotification에 대해 비슷한 작업을 수행하여 텍스트가 입력되지 않았더라도 (예 : 백 슬래시) 버튼이 눌러 졌는지 확인하십시오.

+0

+1 좋은 답변 : –

+0

굉장! @selector (textFieldChanged)를 사용하기 위해 @selector 함수 이름 뒤에 콜론을 제거해야했습니다. – RanLearns

+0

고쳐 주셔서 감사합니다.) – Dimme

2

텍스트 필드에 대리인을 지정하십시오. 대리자의 -textField:shouldChangeCharactersInRange:replacementString: 메서드는 사용자가 키보드에서 문자를 입력하는 것을 포함하여 텍스트를 변경할 때마다 호출됩니다.

+0

텍스트 필드가 비어 있고 사용자가 백 슬래시를 누르면이 메서드는 호출되지 않습니다. – Dimme

+0

Dimme, 텍스트가 비어 있고 백 슬래시를 누르면 여전히 작동하지 않습니다. UITextFieldTextDidChangeNotification을 사용하는 솔루션이 위임자의 textField와 다른 점은 무엇입니까? shouldChangeCharactersInRange : replacementString? 그렇지 않습니다. 둘 다 똑같습니다. 이것은 모든 백 스페이스 키를 가로 채기 위해 작동하지 않습니다. – PostCodeism

관련 문제