0

在我的 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);
        }

    }

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

我可以看到Apple 开发人员在 GarageBand 帮助屏幕中实现了这一点,因此它必须是执行此操作的“正确”方式。

非常感谢帮助,因为我们的客户不想因为这样一个轻微的限制而改变设计理念。

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

我们发现您的应用使用了一个或多个非公共 API,这不符合 App Store 审核指南。不允许使用非公共 API,因为如果这些 API 发生更改,可能会导致糟糕的用户体验。

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

activeInstance 解除键盘

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

4

1 回答 1

0

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

于 2011-05-20T19:25:40.373 回答