저는 세로 및 가로 모드를 모두 지원하는 기본 iOS 앱을 개발 중 입니다. iPhone 시뮬레이터 키보드가 가로 모드로 열려 있고 앱을 세로 모드로 전환 할 때 Mac 물리적 키보드를 사용하여 텍스트 필드에 아무것도 입력 할 수 없습니다.
전에 경험 한 사람이 있습니까? 알려진 버그입니까?
저는 세로 및 가로 모드를 모두 지원하는 기본 iOS 앱을 개발 중 입니다. iPhone 시뮬레이터 키보드가 가로 모드로 열려 있고 앱을 세로 모드로 전환 할 때 Mac 물리적 키보드를 사용하여 텍스트 필드에 아무것도 입력 할 수 없습니다.
전에 경험 한 사람이 있습니까? 알려진 버그입니까?
답변:
나를 위해 일한 훌륭한 솔루션을 찾았습니다.
시뮬레이터를 열고 메뉴 하드웨어-> 키보드에는 세 가지 옵션이 있습니다.
Xcode 9에서는 iPhone 8+ 시뮬레이터에서 동일한 문제에 직면했습니다. 이 방법으로 해결할 수있었습니다.
~/Library/Preferences/com.apple.iphonesimulator.plist
파일 열기CaptureKeyboardInput
에 대한 값YES
입력을 시작하기 전에 (화상 키보드가 나타날 때) command 키만 누른 다음 놓습니다. 시뮬레이터에서 키보드를 다시 활성화해야합니다.
시뮬레이터 메뉴에서 >> 하드웨어 >> 키보드 >> 하드웨어 키보드 연결
또는
그냥 눌러 ⌘ + ⌂ + K
시뮬레이터에서 장치를 변경해보십시오. 그런 다음 원래 장치에서 앱을 다시 실행하십시오. 그것은 나를 위해 일했습니다.
첫 번째 단계만으로도 작동하지 않으면 iOS OS X와 동일한 키보드 레이아웃을 사용하는 옵션을 선택 취소 한 다음 기기를 변경합니다.
나는 그것이 효과가있을 때까지 무작위로 일을한다는 것을 알아 냈다. 원숭이 수정.
이 제안 중 어느 것도 나를 위해 일하지 않았습니다. iOS Simulator 앱을 닫고 다시 시작했습니다. 그것은 나를 위해 그것을 고쳤습니다.
문제가되지 않습니다.
오픈 시뮬레이터
Going To Top And you see Option Hardware click on this.
하드웨어를 클릭하면 일부 옵션이 나타나고 하나의 옵션은 키보드입니다.
키보드 옵션을 클릭하면 세 가지 옵션이 나타납니다.
Mac 버튼 키보드를 사용하려면 두 번째 옵션 하드웨어 키보드 연결을 선택하십시오.
모바일 태핑 키보드를 사용하려면 세 번째 옵션을 선택하십시오.
첫 번째 옵션은 코드를 통해 키보드를 선택하는 사람들을위한 것입니다.
그 모든 일을 즐기십시오.
나를 위해 시뮬레이터를 선택하고 하드웨어-> 키보드-> 하드웨어 키보드 연결을 선택하십시오.
그것은 나를 위해 일했습니다.
방금 말씀하신대로 시도했는데 사실입니다. 가로로 이동 한 다음 다시 세로로 이동하면 작동하지 않습니다. 내 앱이 변경되지 않았기 때문에 로직이 없으며 장치에서 제대로 작동하므로 시뮬레이터의 버그입니다.
다음을 사용하여 Apple에 신고 할 수 있습니다.
시뮬레이터를 종료하고 터미널에서 다음 명령을 실행하십시오.
rm ~/Library/Preferences/com.apple.iphonesimulator.plist
모든 옵션과 설정을 수정 한 후에도 Mac 키보드의 연결이 끊긴 경우 한 가지 원인은 기기를 회전하는 것입니다.
당신이 경우 CMD+ ←또는 →회전 장치에 시뮬레이터를 시작하는 초기 때, 맥 키보드는 전혀 상관없이 작동하지 않습니다; 메뉴 설정을 변경해도 아무 효과가 없습니다! 기기를 회전하기 전에 Mac 키보드를 사용하여 기기 내부에 입력하면 도움이 될 수 있습니다.
"Send Menu Shortcuts to Device"를 끄고 시뮬레이터를 다시 시작하면 때때로 도움이됩니다. 신뢰할 수 있고 재현 가능한 동작이 생기면 업데이트하겠습니다.
Mac 키보드가 시뮬레이터를 실행하고 종료하는 시간의 절반 정도가 작동한다는 것을 알았습니다. 50 %는 몇 년 후에도 나쁘지 않습니다!?
나는 시뮬레이터를 다시 시작하고 그것은 나를 위해 일했습니다.
CMD + SHIFT + K를 사용하면 키보드가 스스로 활성화됩니다.
너무 많은 일을 한 후에 내 컴퓨터를 다시 시작하고 아래를 활성화하면 효과가 있습니다.
시뮬레이터에서 활성화 : 하드웨어-> 키보드-> 하드웨어 키보드 연결
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
한 다음 동일한 위치에 새 파일을 씁니다. 이것은 나를 위해 작동하지만 더 나은 방법이 있는지 알려주십시오. 나는 아직 코딩에 익숙하지 않습니다.