在我的 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?