适用于SDK 4的自定义iPhone KeyBoard(iOS4操作系统)

时间:2010-06-24 02:34:04

标签: iphone objective-c ios

旧SDK解决方案:

- (void)modifyKeyboard:(NSNotification *)notification 
{
    UIView *firstResponder = [[[UIApplication sharedApplication] keyWindow] performSelector:@selector(firstResponder)];

    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows])
        for (UIView *keyboard in [keyboardWindow subviews])
            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
            {
                MyFancyKeyboardView *customKeyboard = [[MyFancyKeyboardView alloc] initWithFrame: CGRectMake(0, 0, keyboard.frame.size.width, keyboard.frame.size.height);
                                                       [keyboard addSubview: customKeyboard];
                                                       [customKeyboard release];
            }
}

按照上面的方法,我现在发现iOS4是不同的。不起作用。我确信这是由于命名子视图(或排序)的差异。对于iphone SDK 4,有谁知道如何解决同样的问题?

4 个答案:

答案 0 :(得分:6)

你可以看一下这篇文章: http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key

它解决了该问题,适用于所有版本的SDK

答案 1 :(得分:5)

是。 iOS 4支持自定义输入视图 - 您可以通过设置响应者的MyFancyKeyboardView将您自己的UITextField替换为任何UIResponder继承类(例如UITextViewinputView)的键盘属性。

答案 2 :(得分:3)

4.1 SDK现在有一个你正在尝试做的UIKeyboardTypeDecimalPad,对吗?

答案 3 :(得分:0)

对于ios 5,似乎不起作用。但是当我改变这样的代码时:

UIKeyboard 更改为 UIPeripheralHostView

它有效。我希望它对其他开发人员有用。