3

UITextField shouldChangeCharactersInRange delegate当使用简体中文键盘从自动更正栏中选择一个单词时,不会调用该方法。当我输入“你好”时,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 回答