1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Swift] Keyboard Extensionが有効化されたかチェックする

Last updated at Posted at 2020-12-10

Keyboard Extensionの収容アプリには「有効化したら画面遷移する」という挙動を示すものがあります。

この動作は非常に単純で、まず次のような関数を定義します。

func isKeyboardActivated() -> Bool {
    let bundleName = "hogehoge"       //自分のKeyboard ExtensionのBundleIDを指定する。
    guard let keyboards = UserDefaults.standard.dictionaryRepresentation()["AppleKeyboards"] as? [String] else{
        return true
    }
    return keyboards.contains(bundleName)
}

"AppleKeyboards"というキーで、ユーザが有効化しているキーボードのBundleIDを全て取得できるので、その中に含まれているか確かめればOKです。

あとはこの関数を「バックグラウンドから復帰したタイミング」などで呼んであげれば有効化されたかチェックができます。

ただ、今のところ「どのキーボードが開かれているか」を取得できていません。ご存知の方がいらっしゃったら教えていただきたいです。
開かれているキーボードの取得方法がわかりました。「[Swift] 現在開かれているキーボードを取得する」をご覧ください。

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?