私は縦向きと横向きの両方のモードをサポートする基本的なiOSアプリに取り組んでいます。iPhoneシミュレーターキーボードが横向きで開いているときにアプリを縦向きモードに切り替えると、Macの物理キーボードを使用してテキストフィールドに何も入力できなくなります。
誰かがこれを以前に経験したことがありますか?既知のバグですか?
私は縦向きと横向きの両方のモードをサポートする基本的なiOSアプリに取り組んでいます。iPhoneシミュレーターキーボードが横向きで開いているときにアプリを縦向きモードに切り替えると、Macの物理キーボードを使用してテキストフィールドに何も入力できなくなります。
誰かがこれを以前に経験したことがありますか?既知のバグですか?
回答:
私のために働いた素晴らしい解決策を見つけました。
シミュレーターを開き、メニューのハードウェア->キーボードに3つのオプションがあります。
Xcode 9では、iPhone 8+シミュレータでも同じ問題に直面しました。私はこのようにそれを解決することができました:
~/Library/Preferences/com.apple.iphonesimulator.plist
ファイルを開くCaptureKeyboardInput
値を設定YES
入力を開始する前に(スクリーンキーボードが表示されたら)、コマンドキーだけを押してから離します。これにより、シミュレータでキーボードが再び有効になります。
シミュレータメニューから>>ハードウェア>>キーボード>>ハードウェアキーボードの接続
または
押すだけ ⌘ + ⌂ + K
シミュレータでデバイスを変更してみてください。次に、元のデバイスでアプリを再度実行します。それでうまくいきました。
最初のステップだけでは機能しない場合は、オプションのチェックを外してください:iOSはOS Xと同じキーボードレイアウトを使用し、デバイスを変更します。
それが機能するまで、私はそれをランダムに行うことを理解しました。サルの修正。
これらの提案はどれも私にとってうまくいきませんでした。iOSシミュレータアプリを閉じて再起動しました。それで解決しました。
問題はありません。これらの簡単な手順を実行してください。
シミュレータを開く
Going To Topそして、あなたはオプションハードウェアを見ますこれをクリックしてください。
ハードウェアをクリックすると、いくつかのオプションが表示され、1つのオプションはキーボードです。
キーボードオプションをクリックすると、3つのオプションが表示されます。
Macボタンキーボードを使用する場合は、2番目のオプション[ハードウェアキーボードの接続]を選択します。
モバイルタッピングキーボードを使用する場合は、3番目のオプションを選択します。
最初のオプションは、コードからキーボードを選択する人向けです。
そのすべての仕事をお楽しみください。
私はちょうどあなたが言ったことを試してみました、そしてそれは本当です、それを私がそれを横に動かして、それから再び縦に動かすならば動かないです。私のアプリは変更されていないため、ロジックはありません。デバイスでは問題なく動作するため、シミュレーターのバグです。
これを使用してAppleに報告できます。
シミュレーターを終了し、ターミナルで次のコマンドを実行します。
rm ~/Library/Preferences/com.apple.iphonesimulator.plist
すべてのオプションと設定を修正した後も Macキーボードが接続されていない場合、原因の1つはデバイスの回転です。
あなたがいる場合CMD+ ←または→回転デバイスにシミュレータが起動された初期の時に、Macのキーボードでは絶対に何に関係なく動作しません。メニュー設定を変更しても何も起こりません!デバイスを回転させる前に、Macキーボードを使用してデバイス内に入力すると役立つ場合があります。
[メニューショートカットをデバイスに送信]をオフにしてシミュレータを再起動すると、役立つことがあります。信頼性が高く、再現可能な動作が得られたら更新します。
Macキーボードは、シミュレータを実行して終了したときの約半分の時間で機能することがわかりました。これらすべての年の後に50%は悪くありません!?
CMD + SHIFT + Kを使用するだけで、キーボードはそれ自体でアクティブになります。
非常に多くのことをした後、私のマシンを再起動して、以下を有効にするだけでうまくいきました。
シミュレータでこれを有効にする:ハードウェア->キーボード->ハードウェアキーボードの接続
Main.storyboard
コードでメインウィンドウを削除して作成した後、この問題に遭遇しました。使用に戻すと、Main.storyboard
修正されました。
plistlibと呼ばれるplistファイルを編集するためのライブラリがあります。これが私のコードです:
import plistlib
file_name = ('path/to/com.apple.iphonesimulator.plist')
try:
p = plistlib.readPlist(file_name)
p["ConnectHardwareKeyboard"] = "NO"
plistlib.writePlist(p, file_name)
except:
print("Failure")
これは、plistファイルを読み取り、ConnectHardwareKeyboard
値をに変更してからNo
、新しいファイルを同じ場所に書き込みます。これは私にとってはうまくいきますが、もっと良い方法があるかどうか知らせてください。私はまだコーディングの初心者です。