Не можете ввести текстовое поле в симуляторе iphone с помощью клавиатуры Mac?

98

Я работаю над базовым приложением для iOS, которое поддерживает как портретный, так и ландшафтный режимы. Когда клавиатура симулятора iPhone открыта в альбомной ориентации и я переключаю приложение в портретный режим, я не могу вводить что-либо в текстовое поле с помощью физической клавиатуры Mac.

Кто-нибудь испытывал подобное раньше? Это известная ошибка?

Дипак Карпентер
источник
Не могли бы вы предоставить дополнительную информацию, например, о версии XCode и iOS SDK, которые вы используете?
brimble2010
1
У меня точно такая же проблема. Я также иногда получаю длинные серьезные предупреждения о недопустимом контексте в консоли.
bilobatum

Ответы:

81

Нашел отличное решение, которое сработало для меня.
Откройте симулятор, затем найдите меню Оборудование -> Клавиатура имеет три варианта:

  1. iOS использует ту же раскладку, что и OS X : этот параметр отключает клавиатуру Mac
  2. Подключить аппаратную клавиатуру : этот параметр включает клавиатуру Mac, но клавиатура не отображается.
  3. Переключить программную клавиатуру : эта опция позволит вам вводить текст с клавиатуры Mac, а также отобразит iOS на экранной клавиатуре.
iosCurator
источник
это сработало, как в 2020 году ... Не удалось набрать текст на симуляторе, после переключения на аппаратную клавиатуру он работает
Хуан
52

В Xcode 9 я столкнулся с той же проблемой с симулятором iPhone 8+. Я смог решить это так:

  1. Открыть ~/Library/Preferences/com.apple.iphonesimulator.plistфайл
  2. Найдите проблемный идентификатор симулятора (отображается в окне « Устройства и симулятор» )
  3. Установите CaptureKeyboardInputзначение наYES
  4. Перезагрузите симулятор

Махбуб Моршед
источник
2
Спасибо. Это единственное, что у меня работало в Xcode 9. Пробовал различные комбинации внутри аппаратного меню, но безрезультатно. Прошился и вручную добавил на все мои симки. Не уничтожал и не воссоздавал симулятора, чтобы посмотреть, решит ли это проблему. Apple не в первый раз лажает с симками, наверное, и не в последний раз. :)
StephenFeather
2
Вы заслуживаете медали.
Оливер Пирмэйн
2
Это единственное исправление, которое мне помогло. Спасибо!
gokeji
1
какой ответ, братан,
снимаю шляпу
1
Ага, это ответ для меня. Большое спасибо
Витало Бенисио
41

Перед тем, как начать вводить текст (когда появится экранная клавиатура), нажмите только командную клавишу, а затем отпустите ее. Это должно повторно включить клавиатуру в симуляторе.

Евгений Осовецкий
источник
1
Этот ответ виден в поиске проблемы в Google. Молодец, Юджин. Как ты это понял? Намного лучше, чем другие «решения», которые я пробовал.
Nuthatch
17
Дважды набрав CMD + Shift + K при появлении клавиатуры, я решил проблему.
Чанчал Радж
4
Не работает в симуляторе из Xcode 9. Ничего не происходит.
Хосе Рамирес,
Однажды у меня сработало. Затем клавиатура перестала работать у меня вскоре после этого, и теперь это не работает. (Симулятор v10.0, Xcode 9.2)
Райан Х.
37

В меню Симулятор >> Оборудование >> Клавиатура >> Подключить аппаратную клавиатуру.

ИЛИ

просто нажмите ⌘ + ⌂ + K

Meseery
источник
это сработало для меня, но сразу после того, как я перезапустил симулятор
marcomoreira92
26

Запустите iOS Simulator и включите Hardware > Keyboard > Connect Hardware Keyboard.

(Вы могли случайно отключить его, нажав CMD + SHIFT + K- тот же ярлык, что и Clean в Xcode)

Аттила Х
источник
18

На Симуляторе попробуйте сменить устройство. Затем снова запустите приложение на исходном устройстве. Это сработало для меня.

Если первый шаг сам по себе не работает, снимите флажок: iOS использует ту же раскладку клавиатуры, что и OS X, а затем смените устройство.

Я понял это, делая случайные вещи, пока это не сработало. Крепление обезьяны.

Clopez
источник
1
Мне не нужно было делать первый шаг, но второй шаг сработал. Спасибо!
rob5408 04
Мне нравится, что почти все ответы на этот вопрос совершенно разные. Глупый симулятор iOS. Ваш сработал для меня - я отправил его на рассмотрение :)
Дарра Энрайт
У меня это сработало, за исключением того, что мне не нужно было вызывать другой симулятор. Я просто закрыл окно для симулятора (теперь у вас может быть несколько окон симулятора и закрывать их по отдельности), а затем повторно запустить приложение из Xcode, чтобы вернуть его обратно. Однозначно что-то нестабильное с симулятором. Это было проблематично уже давно :(
Райан Х.
17

Ни одно из этих предложений не помогло мне. Я закрыл приложение iOS Simulator и перезапустил его. Это исправило это для меня.

PeqNP
источник
Тупой. Работал у меня.
KeithTheBiped 05
Если вы пробовали переключать клавиатуру с помощью shift-command-k, попробуйте следующее.
KeithTheBiped
@KeithTheBiped Я безуспешно пробовал shift-command-k, прежде чем перезапустить симулятор ios.
Бухари
14

Я думаю, это только из-за проблемы, что вы не выбрали опцию «подключить аппаратную клавиатуру» в строке меню симулятора с названием «Оборудование»

Пожалуйста, следуйте инструкциям

Перейти: Оборудование -> Клавиатура -> Подключить аппаратную клавиатуру

Надеюсь, это поможет вам с проблемой, спасибо.введите описание изображения здесь

Фансад ПП
источник
11

Я наблюдаю ту же проблему. Я считаю, что проблема связана с тем, что командная клавиша «застревает» в симуляторе, если вы поворачиваете устройство в симуляторе с помощью сочетаний клавиш Command-LeftArrow и Command-RightArrow.

Пока мы ждем, когда Apple исправит ситуацию, один из способов обойти это - повернуть устройство, выбрав пункт меню вместо сочетания клавиш. Это поворачивает устройство и оставляет клавиатуру в рабочем состоянии.

Саймон Гест
источник
9

Повторение команды ниже дважды сработало для меня !!

CMD + Shift + K

Дхавал Х. Нена
источник
5

Это не проблема. Просто сделайте эти простые шаги.

  1. Открыть симулятор

  2. Наверх, и вы увидите опцию «Оборудование», нажмите на нее.

  3. Когда вы нажимаете «Оборудование», появляется какая-то опция, одна из которых - клавиатура.

  4. Нажмите на опцию «Клавиатура», и вы увидите три варианта.

  5. Если вы хотите использовать клавиатуру с кнопками Mac, просто выберите 2-й вариант «Подключить аппаратную клавиатуру».

  6. Если вы хотите использовать мобильную клавиатуру, выберите 3-й вариант.

  7. 1-й вариант - для тех, кто выбирает клавиатуру с помощью кода.

Наслаждайтесь тем, что все работает.

Зишан Дар
источник
1
Если не сработает. Убейте (закройте и запустите) симулятор и повторите эти шаги еще раз. Надеюсь, это сработает.
ФАРАЗ
5

Я только что установил новую версию Xcode (5.0), и клавиатура в iOS Simulator не работала при первом запуске. Помог только перезапуск Симулятора.

Strah
источник
4

Для меня выберите «Симулятор», выберите «Оборудование» -> «Клавиатура» -> «Подключить аппаратную клавиатуру».

У меня это сработало.

Мосиб Асад
источник
3

Я просто попробовал то, что вы только что сказали, и это правда, это не сработает, если я переместу его в пейзаж, а затем снова в портрет. В нем нет никакой логики, потому что мое приложение даже не меняется, и оно отлично работает на устройстве, так что это ошибка симулятора.

Вы можете сообщить об этом в Apple, используя это:

https://developer.apple.com/bug-reporting/

Антонио МГ
источник
2

Решение, которое действительно работало для меня, было удалено симулятор и создано новое. Эта ошибка, как мне кажется, обычно возникает, когда не работают все сочетания клавиш с клавиатуры на симулятор.

Какаши
источник
2

Выйдите из симулятора и выполните в терминале следующую команду:

rm ~/Library/Preferences/com.apple.iphonesimulator.plist

Рохан Санап
источник
совершенствуй этот ответ!
Фарид Бластер
2

У меня возникла проблема с симулятором iPhone6, я сменил его на iPhone7 . На iPhone7 я могу продолжить работу.

Ашок Р
источник
1

Если клавиатура Mac по- прежнему отключена после того, как все параметры и настройки верны, одна из причин - вращение устройства.

Если вы CMD+ или поверните устройство раньше, когда симулятор запускается, клавиатура Mac не будет работать ни на что; изменение настроек меню ничего не делает! Перед поворотом устройства может быть полезно использовать клавиатуру Mac для ввода данных внутри устройства.

Иногда помогает отключение «Отправить ярлыки меню на устройство» и перезапуск симулятора. Я обновлю, если получу надежное, воспроизводимое поведение.

Я обнаружил, что клавиатура Mac работает примерно в половине случаев, когда я запускаю и выхожу из Simulator. 50% - это неплохо после всех этих лет !?

дру
источник
1

Я просто перезапускаю симулятор, и у меня это сработало.

Вед Раунияр
источник
1

Просто используйте CMD + SHIFT + K, и клавиатура активируется сама по себе.

Ученна Ннодим
источник
0

Я встречал эту проблему всякий раз, когда вращал симулятор. Следующие предложения по изменению параметров оборудования не работают для меня, равно как и перезагрузка iOS Simulator.

Я нашел уловку, когда щелчок по области редактирования после поворота заставляет клавиатуру Mac работать.

Азулес
источник
0

После того, как вы выполнили так много вещей, просто перезапустите мою машину и включите следующее.

Включение этого в симуляторе: Оборудование -> Клавиатура -> Подключить аппаратную клавиатуру

Ишварамурти К.
источник
0

Для версии 10.0 (SimulatorApp-851.2 CoreSimulator-518.19) с Xcode 9.3 у меня ничего не работало. Я сбрасываю симулятор с помощью оборудования -> Стереть все содержимое и настройки -> Стереть. Очистил проект и запустил на симуляторе. Подключение клавиатуры восстановлено.

AG
источник
0

Я столкнулся с этой проблемой после того, как удалил Main.storyboardи создал главное окно в коде. Возврат к использованию Main.storyboardисправил это для меня.

Бенедикт Коэн
источник
0

Для меня это сработало на симуляторе iPhone 8+ iOS 11.2: 1. Перейдите в Меню -> Оборудование -> Стереть все содержимое и настройки. 2. Удалите производные данные из xcode. Xcode -> Настройки -> Местоположения -> Щелкните стрелку вправо в левой части кнопки «Дополнительно».

склеп
источник
0

для меня, в открытом симуляторе, в меню вашего Mac нажмите «Оборудование», выберите опцию клавиатуры и выберите «Переключить программную клавиатуру». как показано

Preetham NT
источник
0

Существует библиотека для редактирования файлов plist, которая называется plistlib. Вот мой код:

    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и затем записывает новый файл в то же место. У меня это работает, но дайте мне знать, если есть лучший способ сделать это. Я все еще новичок в кодировании.

Тайлер Хакетт
источник
0

Я просто бросил симулятор, и у меня это сработало.

Викаш Синха
источник