繁体   English   中英

Xcode 6.0 iOS 8 KeyboardTypeNumberPad按钮不可见

[英]Xcode 6.0 iOS 8 KeyboardTypeNumberPad button not visible

我正在使用xcode 6 ios 8.0构建我的应用程序。 我有一个带有keyboardType UIKeyboardTypeNumberPad的UITextField,并向键盘添加了完成按钮,但是它们在ios 8.0 xcode 6.0中不起作用。 直到最新版本的ios 7.1.2正常工作为止。

我订阅了以下方法调用中显示通知和显示按钮的键盘。

  • (void)keyboardDidShow:(NSNotification *)注意

另外,我得到以下日志:-在ios 7.1.2之前,我没有任何日志。

找不到支持键盘iPhone-Portrait-NumberPad的类型4的键盘; 使用3876877096_Portrait_iPhone-Simple-Pad_Default ios 8.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

忽略此警告后,我开始工作了。

希望这对任何人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM