iOS:如何访问`UIKeyboard`?

ma1*_*w28 7 iphone uikit uikeyboard ios

我想获得一个指向UIKeyboard *keyboard屏幕上键盘的指针,这样我就可以为它添加一个透明的子视图,完全覆盖它,以达到禁用它UIKeyboard而不隐藏它的效果.

在这样做时,我可以假设UIKeyboard屏幕上一次只有一个吗?即,这是一个单身人士吗?方法在哪里[UIKeyboard sharedInstance].如果您通过类别实现该方法,布朗尼指出.或者,如果你说服我为什么只假设一个键盘并给我一个更好的解决方案是一个坏主意,那么更多的布朗尼点.

dev*_*oug 7

试试这个:

// my func
- (void) findKeyboard {

    // Locate non-UIWindow.
    UIWindow *keyboardWindow = nil;
    for (UIWindow *testWindow in [[UIApplication sharedApplication] windows]) {
        if (![[testWindow class] isEqual:[UIWindow class]]) {
           keyboardWindow = testWindow;
           break;
       }
    }

    // Locate UIKeyboard.  
    UIView *foundKeyboard = nil;
    for (UIView *possibleKeyboard in [keyboardWindow subviews]) {

        // iOS 4 sticks the UIKeyboard inside a UIPeripheralHostView.
        if ([[possibleKeyboard description] hasPrefix:@"<UIPeripheralHostView"]) {
            possibleKeyboard = [[possibleKeyboard subviews] objectAtIndex:0];
        }                                                                                

        if ([[possibleKeyboard description] hasPrefix:@"<UIKeyboard"]) {
           foundKeyboard = possibleKeyboard;
           break;
        }
    }
}   
Run Code Online (Sandbox Code Playgroud)


ma1*_*w28 5

怎么用-[UIApplication beginIgnoringInteractionEvents]

此外,获取包含键盘的视图的另一个技巧是初始化虚拟视图,CGRectZero并将其设置为inputAccessoryView您的UITextFieldUITextView.然后,得到它superview.尽管如此,这样的恶作剧是私人的/无证件的,但我听说应用程序这样做并且无论如何都会被接受.我的意思是,Instagram如何才能使他们的评论键盘具有交互性(在轻扫时忽略),如消息键盘?