Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 是否将UIImageView作为子视图添加到UIKeyboard-userInteractionEnabled?_Objective C_Ios_Ipad_Keyboard_Uiimageview - Fatal编程技术网

Objective c 是否将UIImageView作为子视图添加到UIKeyboard-userInteractionEnabled?

Objective c 是否将UIImageView作为子视图添加到UIKeyboard-userInteractionEnabled?,objective-c,ios,ipad,keyboard,uiimageview,Objective C,Ios,Ipad,Keyboard,Uiimageview,我在向键盘添加子视图时遇到了一个小问题。我可以成功地找到我的键盘并向其添加uiimageview,但不幸的是图像视图下的按钮仍然可以触摸。我只是想让它成为一个彩色叠加,这样可以隐藏不需要的关键点,并且使它们不可触摸:) 这是我的代码,我做错了什么?UIImageView显示正确,但仍可以点击按钮…:( -(UIView*)findKeyboard{ //找到非UIWindow。 UIWindow*键盘窗口=无; 对于(在[[UIApplication sharedApplication]wind

我在向键盘添加子视图时遇到了一个小问题。我可以成功地找到我的键盘并向其添加uiimageview,但不幸的是图像视图下的按钮仍然可以触摸。我只是想让它成为一个彩色叠加,这样可以隐藏不需要的关键点,并且使它们不可触摸:)

这是我的代码,我做错了什么?UIImageView显示正确,但仍可以点击按钮…:(

-(UIView*)findKeyboard{
//找到非UIWindow。
UIWindow*键盘窗口=无;
对于(在[[UIApplication sharedApplication]windows]中的UIWindow*testWindow]){
如果(![[testWindow类]isEqual:[UIWindow类]]){
键盘窗口=测试窗口;
打破
}
}
//找到你的键盘。
UIView*foundKeyboard=nil;
对于(UIView _ustrong*可能在[键盘窗口子视图]中显示键盘){
//iOS 4将UI键盘固定在UIPeripheralHostView中。

如果([[possibleKeyboard description]hasPrefix:@“用户交互被禁用意味着触摸可以直接通过。启用它,但没有任何手势识别器或动作,它会吞噬所有触摸。

哦,我真的很笨。我完全忘记了这一点……非常感谢:)
- (UIView *)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 __strong *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;
        }
    }
    return foundKeyboard;
}   

- (void)keyboardWillShow:(NSNotification *)note {  

    UIImageView *overlayView;
    UIView *keyboardView = [self findKeyboard];
    UIImage *img = [UIImage imageNamed:@"keyboardOverlay.png"];
    overlayView = [[UIImageView alloc] initWithImage:img];
    [overlayView setUserInteractionEnabled:NO];
    UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, overlayView.frame.size.width, overlayView.frame.size.height)];
    newView.userInteractionEnabled = NO;
    newView.multipleTouchEnabled = NO;
    [newView addSubview:overlayView];
    [keyboardView insertSubview:newView atIndex:40];

}