4

我的自定义键盘为所有 Apple 设备的每个屏幕分辨率预设。所以我有 iphone、iphon5、iphone6、iphone6plus 和 ipad 预设。

但如果用户在 iPad 上运行 iPhone 应用程序(如 instagram),我需要加载 iphone 键盘预设并使用它的几何形状。

当应用程序像 iPhone 5 应用程序一样运行时,iPhone 6 和 6+ 也可以使用拉伸模式。

因此,确定UI_USER_INTERFACE_IDIOM不是解决方案。键盘扩展和主机应用程序可以以不同的方式查看屏幕几何图形,所以我被困在这里。需要至少为主机应用程序获取应用程序框架或任何其他显式方式来获取该几何图形。

应用程序和键盘扩展以不同的方式查看几何图形: 应用程序和键盘扩展以不同的方式查看几何图形

在 ipad 屏幕上的 iphone 应用程序内部运行时,Swift 键似乎也有同样的错误。

ipad 上 iphone 应用程序中的 Swiftkey: ipad 上 iphone 应用程序中的 Swiftkey

4

1 回答 1

0

我刚刚找到了一种在键盘扩展上检查 isPad 的方法,但我不能确定这是最好的方法。

UI_USER_INTERFACE_IDIOM() && YourKeyboardViewController.instance.view.bounds.size.width == UIScreen.mainScreen.bounds.size.width

您应该在 YourKeyboardViewController.instance 调用 viewWillAppear() 之后执行此操作,之后 view.bounds 确实从 768x1024 更改为 320x480。

于 2017-05-11T08:07:52.833 回答