我正在用xcode 6 ios 8.0构建我的应用程序。我有一个带有keyboardType UIKeyboardTypeNumberPad的UITextField,并在键盘上添加了一个完成按钮,但它们在ios 8.0 xcode 6.0中不起作用。它一切正常,直到最新版本ios 7.1.2发布。
我订阅键盘显示通知并在下面的方法调用中显示按钮。
另外,我得到以下日志: - 我没有任何日志,直到ios 7.1.2
无法找到支持键盘iPhone-Portrait-NumberPad的4型键盘;使用3876877096_Portrait_iPhone-Simple-Pad_Default ios 8.0
任何人都面临这个问题。 提前谢谢。
答案 0 :(得分:0)
我找到了解决自己问题的方法。
以下是适用于iOS 8.0以及以下版本的代码。
我已在iOS 7和8.0(Xcode版本6.0.1)
上测试过它UIWindow* tempWindow;
UIView* keyboard;
for (UIWindow *window in [[UIApplication sharedApplication] windows])
{
if ([NSStringFromClass([window class]) isEqualToString:@"UITextEffectsWindow"])
{
tempWindow = window;
break;
}
}
for(int i = 0 ; i < [tempWindow.subviews count] ; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES){
[keyboard addSubview:self.doneButton];
}
//This code will work on iOS 8.0
else if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES){
for(int i = 0 ; i < [keyboard.subviews count] ; i++)
{
UIView* hostkeyboard = [keyboard.subviews objectAtIndex:i];
if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES){
[hostkeyboard addSubview:self.doneButton];
}
}
}
}
但是,我仍然收到这个警告: -
无法找到支持键盘iPhone-Portrait-NumberPad类型4的键盘;使用3876877096_Portrait_iPhone-Simple-Pad_Default
忽略这个警告我开始工作了。
希望这对任何人都有帮助。