iPad - 在UIModalPresentationFormSheet模式下关闭模态视图控制器的键盘

时间:2011-03-17 09:24:59

标签: ipad keyboard modal-dialog dismiss uimodalpresentationstyle

在我的iPad应用程序中,我想在 UIModalPresentationFormSheet 模态模式无键盘中呈现一些视图控制器。

我用它来显示帮助作为例子。

目前我使用stackoverflow答案之一上的代码来解雇它:

// trick to dismiss keyboard in iPad:    
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
        // iPad specific behaviour:

        @try
        {
            Class UIKeyboardImpl = NSClassFromString(@"UIKeyboardImpl");
            id activeInstance = [UIKeyboardImpl performSelector:@selector(activeInstance)];
            [activeInstance performSelector:@selector(dismissKeyboard)];
        }
        @catch (NSException *exception)
        {
            //NSLog(@"%@", exception);
        }

    }

但我担心Apple会在批准过程中拒绝它,因为它使用私有API

我可以看到 Apple开发人员在GarageBand帮助屏幕中实现了这一点所以它必须是“正确”的方式来实现这一点。

由于我们的客户不希望因为这种轻微的限制而改变设计概念,所以会感激不尽。

更新: 就在今天,我被AppStore拒绝了:

  

我们发现您的应用使用了一个或   更多非公共API,不在   符合App Store评论   指南。使用非公共API   是不允许的,因为它可以导致   这些应该是糟糕的用户体验   API改变。

     

我们发现了以下非公共API   在你的应用中:

     

activeInstance dismissKeyboard

所以请不要遵循这个建议How to HIDE the iPad keyboard from a MODAL view controller?

1 个答案:

答案 0 :(得分:0)

正如我在上述问题的评论中所说:您可以使用NSSelectorFromString()动态构造选择器。这将被AppStore接受,您的错误将得到修复,您的代码也不会崩溃。