0

模式视图控制器在我的iPad应用程序,我要提供一些视图控制器在UIModalPresentationFormSheet模式模式无键盘的iPad - 关闭键盘在UIModalPresentationFormSheet模式

我用它来显示帮助为例。

在我用计算器答案的一个找到的代码以关闭的那一刻:

// 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帮助屏幕中实现了这一目标,因此它必须是“正确”的方法。

希望能有所帮助,因为我们的客户不希望改变设计理念,因为这种轻微的限制。

UPDATE: 就在今天,我从AppStore的拒绝:

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

我们发现您应用中的以下非公开的API :

activeInstance dismissKeyboard

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

回答

0

正如我所说的在提到的问题的评论中:你可以构造选择器dyn用NSSelectorFromString()。这将被AppStore接受,你的错误将被修复,你的代码不会崩溃。

+0

这会很容易欺骗苹果。我相信他们能够扫描从NSString构建的选择器。他们不会轻易绕过私人限制。 – Lukasz 2011-05-21 06:26:53