在我的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?
答案 0 :(得分:0)
正如我在上述问题的评论中所说:您可以使用NSSelectorFromString()动态构造选择器。这将被AppStore接受,您的错误将得到修复,您的代码也不会崩溃。