我想知道是否有其他人遇到过这个问题或者可能有所帮助?
基本上,我在我的应用程序中的屏幕上使用自定义键盘。
屏幕上有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')
稍微单独注意,我听说有时这种类型的键盘会被苹果拒绝,也有兴趣听听是否有人有这方面的经验?
谢谢:)
答案 0 :(得分:1)
好的,所以我让它工作,这是myCustomKeyboard方法的一个例子。我希望这个答案与你相关
- (IBAction)button0Pressed {
self.textField.text = [self.textField.text stringByAppendingString:@"0"];
[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];
[self playSound];
}
主要的补充是
[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];
然后在我的其他课程中我有这个
[[doubleCheckAlertView textFieldAtIndex:0] addTarget:self action:@selector(testMethod) forControlEvents:UIControlEventEditingChanged];
和
-(void) testMethod {
//Do something
}
答案 1 :(得分:0)
最终解决了iOS6的这些自定义键盘问题后,iOS7现在显示了我创建的所有自定义键盘背后的背景。背景是标准键盘的形状。有没有其他人在iOS7中使用自定义键盘遇到此问题?或者知道如何解决这个问题?