3

UITextField shouldChangeCharactersInRange delegate簡体字中国語キーボードで自動修正バーから単語が選択された場合、メソッドは呼び出されません。「ni hao」と入力すると、このdelegateメソッドが文字ごとに呼び出されますが、オートコレクト候補バーから単語を選択すると、このデリゲート メソッドは呼び出されません。これはiOS 7簡体字中国語でのみ発生し、日本語キーボードでは問題なく動作します。単語を選択するときにアプリケーション固有のアクションを実行したい。どんな助けでも大歓迎です。

4

2 に答える 2

2

今日も同じ問題に遭遇しました。以下のように修正しました。

デリゲートを使用しないでください。通知を使用してください。

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

于 2013-11-28T06:21:54.710 に答える
0

私もこの問題に遭遇しました。@AnkyHe のソリューションに感謝します。これが私の実装です。

UITextField を保持する ViewController で:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(textChanged:)
                                                 name:UITextFieldTextDidChangeNotification
                                               object:nil];
}

- (void)textChanged:(NSNotification *)notif
{
    UITextField *editingTextField = (UITextField *)notif.object;
    NsLog(@"changed textL %@", editingTextField.text);
}
于 2014-09-07T10:56:35.813 に答える