【发布时间】:2014-09-26 03:32:50
【问题描述】:
在 iPad 上使用 iPhone 应用时,键盘扩展只能知道 iPad 的屏幕尺寸,但实际上我应该知道它就像在 iPhone 上运行一样,并且得到像 iPhone 一样的尺寸。
我当前在 iPad 上的 iPhone 应用程序中运行的代码如下所示:
【问题讨论】:
标签: iphone ipad ios8 ios-app-extension ios-keyboard-extension
在 iPad 上使用 iPhone 应用时,键盘扩展只能知道 iPad 的屏幕尺寸,但实际上我应该知道它就像在 iPhone 上运行一样,并且得到像 iPhone 一样的尺寸。
我当前在 iPad 上的 iPhone 应用程序中运行的代码如下所示:
【问题讨论】:
标签: iphone ipad ios8 ios-app-extension ios-keyboard-extension
在UIInputViewController的viewDidAppear中,我实际上可以得到self.inputView的帧,在这种情况下是320。
然而,self.view 和 self.inputView 的框架在viewDidload 或viewWillAppear 中都是CGRecteZero,这实际上就是为什么我们应该只在[super viewDidAppear] 之后设置键盘高度。
【讨论】:
在 UIInputViewController 的 viewDidLayoutSubviews 中调用 [super viewDidLayoutSubviews] 可以直接查看键盘视图(self.view.frame)的实际大小。它是第一个检查大小的地方,比 viewDidAppear 快得多。
【讨论】:
您的键盘扩展程序应该是通用的,如果是,那么您可以使用以下代码获取设备类型(iPhone/iPad)。
let isPad = UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
您可能正在使用以下方法来获取屏幕边界
UIScreen.mainScreen().bounds.size
此方法在键盘扩展中给出设备的整个高度、宽度。
您可以通过使用以上两个条件来使用嵌套条件来解决您的问题。
【讨论】: