2012-07-25 3 views
3

저는 textFieldInput 및 UITextField라는 버튼이 있습니다. 아무 래도 입력보기를 비활성화하여 누군가 texField를 탭하면 키보드가 표시되지 않도록합니다. 프로그래밍 방식으로 버튼을 눌렀을 때 텍스트를 추가하고 있습니다. 그리고 저는이 변화를 포착하고 싶습니다. textField의 텍스트가 변경 될 때 함수를 호출하고 싶습니다. 어떻게해야합니까? UITextField 텍스트 변경 콜백

나는 다음과 같은 기능을

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)replacementStr { 
// some my code 
return YES; 
} 

을 추가하여 시도하지만이 작동하지 않습니다. 이것은 textField를 탭할 때만 호출됩니다.

나는 또한 내있는 viewDidLoad 기능

[textFieldInput addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 

이 또한 작동하지 않습니다에 다음을 추가했습니다.

어떻게하면됩니까?

감사합니다.

+0

가 활성화되지 않고 버튼을 누를 때 있어야 할 텍스트 필드가에 당신이 원하는 의미 구현 가능하게 .. 그래? –

+0

@ tzu.rahul 아니요, 버튼을 누를 때 텍스트 필드에 텍스트를 추가 할 것입니다. – razibdeb

+0

버튼을 눌렀을 때보 다 텍스트를 추가하는 것보다 비활성화가 ... 아닌가요? 일부 텍스트가 있지만 사용 불가능합니다. 그것은 오직 버튼이 눌러 진 후에 만 ​​가능하고 편집 가능합니다. 나는 정확한 것인가? –

답변

7

등록 통지.

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(textChanged:) 
               name:UITextFieldTextDidChangeNotification 
              object:YOUR_TEXT_FIELD]; 
+0

i 위의 object : 매개 변수에 textFiled 객체를 지정해야한다고 생각합니다. – Ishu

+0

입력 할 때 답을 +1 해줄 수 있습니다. – Ishu

+0

당신 말이 맞아요. 나는 그것을 놓쳤다. – Apurv

1
shouldChangeCharactersInRange: 

이 방법을 구현하는 컨트롤러의 대리자를 설정 한 경우에만 동작합니다. 다른 하나의 방법은 다음과 같습니다

이 라인 viewDidLod

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; 

    [nc addObserver:self 
      selector:@selector (handle_TextFieldTextChanged:) 
       UITextFieldTextDidChangeNotification 
      object: textFieldInput]; 

을 추가하고 handle_TextFieldTextChanged:

- (void) handle_TextFieldTextChanged:(id)notification { 

    // write your logic here. 
} 
+0

또한 이러한 종류의 알림은 viewDidLoad에 등록되어서는 안됩니다. 한 번 더 컨트롤러를 밀어 넣고 텍스트를 편집하면 위임 메서드가 호출되기 때문입니다. 이러한 통지는 viewWillAppear에 등록되어야하며 viewwillDisAppear에서 등록 취소되어야합니다. – Apurv

+0

나는이 @ 이슈를 시도했지만 나에게 도움이되지 않았다. – razibdeb

+0

@Apurv viewWillAppear에서 이것을 등록 할 것이고 날씨가 작동하는지 알 수있게 할 것이다. 감사합니다. . – razibdeb