2012-10-05 3 views
9

iOS6의 호출되지 않습니다 다음있다. textField가 Interface Builder에 연결되어 있습니다. iOS5.1 아이 패드에 iOS6의 아이폰/아이 패드 시뮬레이터에UITextFieldTextDidChangeNotification이 ipad3


작품,하지만 iOS6의 iPad3에.

답변

7

그래서 알아 냈습니다. IOS6 SDK에서 변경된 점은 프로그래밍 방식으로 텍스트 필드의 텍스트를 변경하면 알림을 보내지 않는다는 것입니다. 내가보기에 모두 사용자 정의 키보드가 있습니다. 키를 누르면 입력 한 내용을 추가하여 텍스트 필드의 텍스트 값을 변경합니다. ios 5에서는 "textdidchange"라는 알림을 보내지 만 ios6에는 표시하지 않습니다.

+2

ios6에서 비슷한 작품을 찾을 수 있습니까? – Marco

0

내 ipad3에서 & iOS6.0 알림 UITextFieldTextDidChangeNotification 잘 작동합니다. 텍스트 필드를 프로그래밍 방식으로 설정할 때

7

Irena가 올바른지 당신의 viewDidLoad에

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(handleTextChange:) 
              name:UITextFieldTextDidChangeNotification 
             object:textField1]; 

을 넣어 UITextFieldTextDidChangeNotification가 발생하지 않습니다. 그러나 iOS6과 관련이 없다는 점을 분명히 밝히고 싶습니다. iOS 6 SDK와 관련이 있습니다. iOS 5.1 SDK를 사용하여 컴파일하는 경우 iOS 6 장치에서 실행되는 경우에도 프로그래밍 방식으로 또는 다른 방법으로 텍스트 필드가 변경 될 때마다 UITextFieldTextDidChangeNotification 알림이 실행됩니다.

//view is a UITextField 
NSString *temp = ((UITextField*)view).text; 
((UITextField*)view).text = @""; 
[((UITextField*)view) insertText:[NSString stringWithFormat:@"%@%@", @"-", temp]]; 

그 코드는 이벤트가 발생하는 것 : 애플 때까지 임시 해결 방법이를 해결로

+0

우연히 이것을 Apple에 버그로보고 했습니까? – Shaolo

0

, 당신은 다음 코드 예제를 사용할 수 있습니다.

이 너무 작동 : 문자가 뒤쪽에서 입력에 따라서 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 문자를 트래핑 후 금지하는 return (NO);를 반환 SS 기간의 UITextField : MM :

[((UITextField*)view) sendActionsForControlEvents:UIControlEventEditingChanged]; 
1

내 사용 사례 나는 HH를 생성하고, 다소 특별했다 UITextField의 자동 업데이트 ... pre-iOS6, 알림을 호출 한 후 iOS6, return 문 바로 앞에 [[NSNotificationCenter defaultCenter] postNotificationName:UITextFieldTextDidChangeNotification object:self.textField];을 호출하기 만하면됩니다.

관련 문제