2012-03-27 1 views
10

UITextField가 inputDelegate를 무시합니까? 경고 또는 예외없이, 그냥 잘 실행UITextField가 inputDelegate ign을 무시합니다.

2012-03-26 20:43:49.560 InputTest[33617:f803] textField: <UITextField: 0x6c093a0; frame = (20 20; 280 31); text = ''; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x6c094d0>> 
2012-03-26 20:43:49.561 InputTest[33617:f803] delegate: (null) 

및 위임 속성은 잘 작동합니다 : 나는 다음과 같은 출력을 얻을

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.textField.inputDelegate = self; 
    NSLog(@"textField: %@", self.textField); 
    NSLog(@"delegate: %@", self.textField.inputDelegate); 
} 

: 다음 코드를 사용하여. 그러나 inputDelegate를 설정하면 변경되지 않으며 대리자 메서드도 호출되지 않습니다.

+0

VC를 로 선언 했습니까? 나는 당신이 컴파일러 경고를 보게 될 것이라고 상상한다. – danh

+0

흠. 난 그냥 프로토콜 경고와 함께 임의의보기 컨트롤러에서 그것을 시도하고 내 코드 - 당신의 중복 - 괜찮 았는데. – danh

답변

0

나는 당신이 직면 한 것과 같은 문제가 있습니다. 깊은 검색시 UITextInput 프로토콜이 IOS 3.2에 있었지만 UITextView/Field가 iOS 5 이전에 해당 프로토콜을 사용하지 않았 음을 알았습니다. iOS 5 이상에서 코드를 실행하면 제대로 작동합니다.

0

편집 세션이 시작된 후에 대표자를 으로 설정하십시오.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    [self.myTextfield setInputDelegate:self]; 
    NSLog(@"Inputdelegate is: %@", self.myTextField.inputDelegate); 

    return YES; 

}