ios - 检查应用程序是否是在 iPad 上打开的 iPhone 应用程序

标签 ios objective-c iphone ipad swift

我已经为 iOS 8 开发了键盘。根据设备是 iPhone 还是 iPad,我会加载不同的布局。现在,当用户打开应用程序(例如:Instagram)时,我遇到了一个问题,它是 iPhone 应用程序但下载在 iPad 上,当然 iPad 会调整此应用程序的大小。我的键盘将设备检测为 iPad 并为 iPad 加载布局,但由于应用程序不是 iPad 应用程序,加载的键盘布局不适合它。很快,有没有办法以编程方式检查应用程序是否是由 iPad 调整大小的 iPhone 应用程序?所以我可以为它加载正确的键盘布局。

最佳答案

如果该应用程序是在 iPad 上以模拟器模式运行的 iPhone 应用程序(如您的示例中的 Instagram),它将具有 Phone 的 userInterfaceIdiom,但模型类型为 iPad。您可以使用以下代码进行检查:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone &&
    [[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
    // This app is an iPhone app running on an iPad, use iPhone-style layout
}

希望这适用于您的自定义键盘。

关于ios - 检查应用程序是否是在 iPad 上打开的 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28260573/

相关文章:

iphone - UITableView 不接受触摸传递

ios - 如何删除 NSMutableSet 中的多个元素?

iphone - SQLite3-选择日期范围不起作用

ios - 列出可用的输出音频目标 AVAudioSession

iphone - 更改我的 iPhone 应用程序的最低操作系统要求?

iphone - 为什么我的 iPhone 应用程序的发布版本在安装后第一次运行时在设备上崩溃?

ios - 使用带有自定义单元格和下一个按钮的 TableView 在数组中加载下一个问题

ios - Ionic cordova 应用程序适用于所有浏览器和 IOS 9,但不再适用于 IOS 8 [无错误地卡住]

ios - 如何在 Swift 中旋转 UIButton 和 UILabel 的文本?

ios - 保存高分