iOS 九宫格输入法下 代理重复调用处理

  1. iOS 设备上,九宫格输入法下,输入@符号等标点符号,系统textfield的代理方法调用多次

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSLog(@"%@",string);
    return YES;
}

图片描述

问题: 如何避免代理方法调用多次问题???

现阶段可以想到的解决方式: 定义一个bool变量记录,当跳转条件达成并且此布尔值为false就跳转并设置为true,当再次回到就在viewWillAppear中重置为false

重点
各位道友有没有好的解决方式或者遇到同样问题的知道根本原因

阅读 3.2k
1 个回答

有一个方案,监听他改变就好了。
记得要移除监听。
[textField addTarget:self action:@selector(textFieldTextChange:) forControlEvents:UIControlEventEditingChanged];

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题