web-dev-qa-db-ja.com

IOSシミュレータの「ハードウェアキーボード」をプログラムで無効にします

ビューにXcuitestsを書いています。ビューに2 UITEXTFIELS 2があり、Simulatorはハードウェアキーボードが接続されているため、ソフトウェアの方が表示されていません。

テスト実行前にシミュレータで接続ハードウェアキーボードを強制的に無効にするための設定を設定することが可能です。

私はいくつかのリンクを経験しましたが、役に立つようです。 iOSシミュレータ - プログラムで接続ハードウェアキーボードを無効にする

iautomationを使用したIOSシミュレータ用のハードウェアキーボードを無効

Xcodeローカルでこれを試すと機能しますが、XcuitestはCI上で実行され、テストの実行が開始される前にキーボードスクリプトを有効にするためにFastLaneファイルを設定します。しかしそれは誤りを投げます

Set:entry、 ":devicePreferences :: connecthardwareKeyboard"、存在しません

どんな助けにも感謝しています

9
Nitisha Sharma

IOSシミュレータを無効にするs Connect Hardware Keyboard設定(シミュレータ - >ハードウェア - >接続ハードウェアキーボード)、このスナップされたAppDelegateに追加します。 REF リンク

#if targetEnvironment(simulator)
// Disable hardware keyboards.
let setHardwareLayout = NSSelectorFromString("setHardwareLayout:")
UITextInputMode.activeInputModes
    // Filter `UIKeyboardInputMode`s.
    .filter({ $0.responds(to: setHardwareLayout) })
    .forEach { $0.perform(setHardwareLayout, with: nil) }
#endif
 _