从autocorrection栏中选择单词时,不会调用ios7 textfield shouldchangecharactersinrange

时间:2013-11-13 10:53:40

标签: ios objective-c uitextfield uikeyboard

从具有简体中文键盘的自动更正栏中选择单词时,不会调用{p> UITextField shouldChangeCharactersInRange delegate方法。当我键入'ni hao'时,会为每个字符调用此delegate方法,但是当我从自动更正建议栏中选择一个单词时,不会调用此委托方法。这只发生在iOS 7简体中文,它与日语键盘配合得很好。我想在选择单词时执行我的应用程序特定操作。任何帮助深表感谢。

2 个答案:

答案 0 :(得分:2)

我今天遇到同样的问题。我把它固定如下:

不要使用委托,只需使用通知:

[[NSNotificationCenter defaultCenter] addObserver:self                                              选择:@选择(框TextChanged :)                                                  名称:UITextFieldTextDidChangeNotification                                                对象:无];

答案 1 :(得分: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);
}