10

UITextField は inputDelegate を無視しますか? 次のコードを使用します。

- (void)viewDidLoad
{
    [super viewDidLoad];

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

次の出力が得られます。

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)

警告や例外なしで問題なく動作し、delegate プロパティも問題なく動作します。ただし、inputDelegate を設定しても変更は発生せず、デリゲート メソッドは呼び出されません。

4

2 に答える 2

0

私はあなたが直面しているのと同じ問題を抱えています。詳細な検索の結果、UITextInput プロトコルは iOS 3.2 にありましたが、UITextView/Field は iOS 5 より前にそのプロトコルを使用していないことがわかりました。iOS 5 以降でコードを実行すると、動作するはずです。

于 2012-04-05T06:51:37.763 に答える
0

編集セッションの開始にデリゲートを設定します。

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

    return YES;

}
于 2016-05-27T04:37:06.287 に答える