在 iPad 上使用 iPhone 应用程序时,键盘扩展只能知道 iPad 的屏幕尺寸,但实际上我应该知道它就像在 iPhone 上运行一样,并且得到像 iPhone 一样的尺寸。
我当前的代码在 iPad 上的 iPhone 应用程序中运行,如下所示:

在 iPad 上使用 iPhone 应用程序时,键盘扩展只能知道 iPad 的屏幕尺寸,但实际上我应该知道它就像在 iPhone 上运行一样,并且得到像 iPhone 一样的尺寸。
我当前的代码在 iPad 上的 iPhone 应用程序中运行,如下所示:

在viewDidAppear中UIInputViewController,我实际上可以得到 的帧self.inputView,在这种情况下是 320。
但是,self.viewandself.inputView的框架都CGRecteZero在viewDidloadorviewWillAppear中,这就是为什么我们应该只在[super viewDidAppear].
在 UIInputViewController 的 viewDidLayoutSubviews 中调用 [super viewDidLayoutSubviews] 后,可以立即查看键盘视图(self.view.frame)的实际大小。它是第一个检查大小的地方,比 viewDidAppear 快得多。
您的键盘扩展应该是通用的,如果是这样,那么您可以使用以下代码获取设备类型(iPhone/iPad)。
let isPad = UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
您可能正在使用以下方法来获取屏幕边界
UIScreen.mainScreen().bounds.size
该方法给出了设备的整个高度,键盘扩展的宽度。
您可以通过使用上述两个条件来使用嵌套条件来解决您的问题。