14360


カスタムキーボードで、iPadでiPhone用ソフト使用時を判定するには、どうしたらいいのでしょうか？

[code]

    private func isWidth() -> CGFloat {
        let screenSize = UIScreen.mainScreen().bounds.size
        let screenW = screenSize.width
        return screenW
    }
    
[/code]

上記ソースはなぜか「768」という答えしか返ってきません。判定には使えませんでした。

よろしくお願いいたします。


CC BY-SA 3.0
2015-08-13T04:23:03.793
14352
2015-08-13T10:22:02.463
2015-08-13T09:25:02.990
10845
10845
question
ios swift
カスタムキーボードをiPadでiPhone用ソフト使用時に判定の仕方がわからない


簡単なのは`UIUserInterfaceIdiom`の値をチェックする方法があります。

[code]

    if UI_USER_INTERFACE_IDIOM() == .Phone {
        // iPhone, iPod touch
    } else if UI_USER_INTERFACE_IDIOM() == .Pad {
        // iPad
    }
    
[/code]

他にもモデル名や機種を判定したり、画面の大きさで判断したりなどでも可能です。

**[Update]**  
キーボードエクステンションからですと、上記の方法はiPhoneエミュレーションモードでも常に`.Pad`の値を返します。

キーボードエクステンションからiPhoneエミュレーションモードを判断するのは自分自身のビューのサイズを利用するしかないと思います。

初期状態では`UIInputViewController`に対して`self.view.bounds`のサイズを調べるとiPhoneエミュレーションモードでは`{320,
216}`となっているので、それを使って判定することになります。

ビューのサイズは`viewDidLayoutSubviews()`以降のタイミングでなければ正しい値になっていないので注意してください。


CC BY-SA 3.0
2015-08-13T08:16:33.477
14360
2015-08-13T10:22:02.463
2015-08-13T10:22:02.463
5519
5519
14352
answer