ios - 升级到 IOS 6 自定义键盘不再响应 UIControlEventEditingChanged

标签 ios keyboard ios6 uitextfield uicontrolevents

我想知道是否还有其他人遇到过这个问题或者可以提供帮助?

本质上,我在我的应用程序的屏幕上使用自定义键盘。

屏幕上有 x4 个文本字段。加载时,第一响应者是第一个文本字段。这在 ios6 中仍然可以完美运行。当数据被添加到第一个文本字段时,问题就来了——它应该触发 UIControlEventEditingChanged(如在 ios5 中),但它没有。在 ios5 中,这会触发对输入数据的检查,并在适当时将第一响应者更改为下一个文本字段。代码是:

[self.field addTarget:self
                action:@selector(textFieldDidUpdate:)
      forControlEvents:UIControlEventEditingChanged];

为了隔离问题,我使用标准键盘在文本字段上测试了上面的代码,它在 ios6 中工作,这让我认为它必须与引入 ios6 问题的自定义键盘有关 - 也许我应该在 ios5 中执行,但已自动为我管理。

值得注意的是,我仍然能够接触到所有四个领域 - 所以这是一个与其他人一直在询问的问题不同的问题。

我使用这段代码来隐藏键盘:

id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];
[keyboardImpl setAlpha:0.0f];

每个字段都会重新加载键盘。

我也有一个警告,我不知道如何解决:

id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];

隐式声明类型为“id (const char *)”的库函数“objc_getClass”

未找到实例方法“-sharedInstance”(返回类型默认为“id”)

稍微分开说明,我听说有时这种类型的键盘会被苹果拒绝,也有兴趣听听是否有人有这方面的经验?

谢谢:)

最佳答案

好的,所以我刚刚开始工作,这里是 myCustomKeyboard 方法的示例。我希望这个答案对你有用

- (IBAction)button0Pressed {
self.textField.text = [self.textField.text stringByAppendingString:@"0"];
[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];
[self playSound];
}

主要的补充是

[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];

然后在我的另一个类(class)我有这个

[[doubleCheckAlertView textFieldAtIndex:0] addTarget:self action:@selector(testMethod) forControlEvents:UIControlEventEditingChanged];

-(void) testMethod {
//Do something
}

关于ios - 升级到 IOS 6 自定义键盘不再响应 UIControlEventEditingChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13472758/

相关文章:

javascript - 缺少请求的请求 token

iphone - NSPredicate 子查询语法

javascript - 检测触摸屏设备上虚拟键盘的打开或关闭

c++ - 无法使用::SendInput() 将退格键发送到写字板应用程序

objective-c - UIScrollView 旋转后仅显示部分 UIView

ios - 为什么Sinch不允许将邮件保留超过30天

ios - 通过连接DVR的视频监控应用

Javascript:转义键 = 浏览器后退按钮

iphone - 编码时捕获 NS_AVAILABLE_IOS

ios - 在 TextField 中放置 PlaceHolder