2012-03-27 12 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

Hmm。私はちょうどプロトコルの警告であっても、あなたのコードを複製しても、ランダムビューコントローラで試してみました。うまくいきました。 – 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; 

} 
関連する問題