カスタムキーボードをiPadでiPhone用ソフト使用時に判定の仕方がわからない


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

[code]

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

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

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




簡単なのは`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()`以降のタイミングでなければ正しい値になっていないので注意してください。




簡単なのは`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()`以降のタイミングでなければ正しい値になっていないので注意してください。

