Không thể nhập textfield trong trình mô phỏng iphone bằng Bàn phím Mac?


98

Tôi đang làm việc trên một ứng dụng iOS cơ bản hỗ trợ cả chế độ dọc và ngang. Khi bàn phím giả lập iPhone mở theo chiều ngang và tôi đang chuyển ứng dụng sang chế độ dọc, tôi không thể nhập bất kỳ thứ gì vào bất kỳ trường văn bản nào bằng bàn phím vật lý của máy Mac.

Có ai đã trải qua điều này trước đây? Nó có phải là một lỗi đã biết?



Bạn có thể cung cấp thêm thông tin như phiên bản XCode và iOS SDK mà bạn đang sử dụng không?
brimble2010

1
Tôi có vấn đề chính xác như nhau. Đôi khi tôi cũng nhận được nhiều cảnh báo ngữ cảnh không hợp lệ trong bảng điều khiển.
bilobatum

Câu trả lời:


80

Tìm thấy một giải pháp tuyệt vời phù hợp với tôi.
Mở trình mô phỏng, sau đó tìm menu Phần cứng -> Bàn phím có ba tùy chọn:

  1. iOS sử dụng bố cục giống như OS X : Tùy chọn này vô hiệu hóa bàn phím Mac
  2. Kết nối Bàn phím Phần cứng : Tùy chọn này bật bàn phím Mac nhưng bàn phím sẽ không hiển thị.
  3. Chuyển đổi Bàn phím phần mềm : Tùy chọn này sẽ cho phép bạn nhập bằng bàn phím máy Mac và cũng sẽ hiển thị bàn phím iOS trên màn hình.

điều này hoạt động như vào năm 2020 ... Không thể nhập trên trình mô phỏng, sau khi chuyển sang bàn phím Phần cứng, nó hoạt động
Juan

52

Trong Xcode 9, tôi gặp phải vấn đề tương tự với trình mô phỏng iPhone 8+. Tôi đã có thể giải quyết nó theo cách này:

  1. Mở ~/Library/Preferences/com.apple.iphonesimulator.plisttệp
  2. Tìm mã nhận dạng trình mô phỏng có vấn đề (hiển thị trong cửa sổ Thiết bị và Trình mô phỏng )
  3. Đặt CaptureKeyboardInputgiá trị thànhYES
  4. Khởi động lại Trình mô phỏng


2
Cảm ơn. Đây là thứ duy nhất hoạt động đối với tôi trong Xcode 9. Tôi đã thử các kết hợp khác nhau bên trong menu phần cứng nhưng không có kết quả. Đã xem qua và thêm thủ công nó vào tất cả các sim của tôi. Chưa phá hủy và tạo lại một sim để xem nếu điều đó cũng giải quyết được nó. Không phải lần đầu tiên Apple làm hỏng sim, có lẽ cũng sẽ không phải là lần cuối cùng. :)
StephenFeather

2
Bạn xứng đáng được nhận huy chương.
Oliver Pearmain

2
Đây là bản sửa lỗi duy nhất đã giúp tôi. Cảm ơn bạn!
gokeji

1
những gì một bro câu trả lời, nón tắt bạn
Jaydip

1
Đúng, đây là câu trả lời cho tôi. Thanks a lot
Witalo Benicio

41

Trước khi bạn bắt đầu nhập (khi bàn phím ảo hiển thị), chỉ cần nhấn phím lệnh rồi thả nó ra. Thao tác này sẽ kích hoạt lại bàn phím trong trình mô phỏng.


1
Câu trả lời này hiển thị trong tìm kiếm của Google cho vấn đề. Làm tốt lắm, Eugene. Làm thế nào bạn tìm ra nó? Tốt hơn nhiều so với các "giải pháp" khác mà tôi đã thử.
Nuthatch

17
Gõ CMD + Shift + K hai lần khi bàn phím xuất hiện, đã giải quyết được vấn đề cho tôi.
Chanchal Raj

4
Không hoạt động trong trình mô phỏng từ Xcode 9. Không có gì xảy ra.
Jose Ramirez

Đã làm việc cho tôi một lần. Sau đó, bàn phím lại ngừng hoạt động đối với tôi không lâu sau đó và bây giờ điều này không hoạt động. (Simulator v10.0, Xcode 9.2)
Ryan H.

37

Từ menu Trình mô phỏng >> Phần cứng >> Bàn phím >> Kết nối bàn phím Phần cứng

HOẶC LÀ

chỉ cần nhấn ⌘ + ⌂ + K


điều này đã hiệu quả với tôi, nhưng ngay sau khi tôi khởi động lại trình mô phỏng
marcomoreira92

25

Khởi chạy Trình mô phỏng iOS và bật Hardware > Keyboard > Connect Hardware Keyboard.

(Bạn có thể đã vô tình tắt nó bằng cách nhấn CMD + SHIFT + K- phím tắt giống như Clean trong Xcode)


18

Trên Trình mô phỏng, hãy thử thay đổi thiết bị. Sau đó, chạy lại ứng dụng của bạn trên thiết bị gốc. Điều đó đã làm việc cho tôi.

Nếu bước đầu tiên không hoạt động, hãy bỏ chọn tùy chọn: iOS Sử dụng bố cục bàn phím giống như OS X, sau đó thay đổi thiết bị.

Tôi đã tìm ra nó để làm những thứ ngẫu nhiên cho đến khi nó hoạt động. Khỉ sửa chữa.


1
Tôi không phải làm bước đầu tiên, nhưng bước thứ hai đã hiệu quả. Cảm ơn!
rob5408

Tôi thích cách mọi câu trả lời cho câu hỏi này hoàn toàn khác nhau. Trình mô phỏng iOS ngớ ngẩn. Của bạn đã làm việc cho tôi - Tôi ngẫu nhiên nó để gửi :)
Darragh Enright

Điều này phù hợp với tôi, ngoại trừ tôi không cần phải sử dụng một trình mô phỏng khác. Tôi chỉ cần đóng cửa sổ cho trình mô phỏng (bạn có thể có nhiều cửa sổ giả lập ngay bây giờ và đóng chúng riêng lẻ) và sau đó chạy lại ứng dụng từ Xcode để đưa nó trở lại. Chắc chắn có gì đó không ổn với trình mô phỏng. Nó có vấn đề trong một thời gian dài :(
Ryan H.

17

Không có đề xuất nào trong số này phù hợp với tôi. Tôi đã đóng ứng dụng Trình mô phỏng iOS và khởi động lại nó. Điều đó đã sửa nó cho tôi.


Ngốc nghếch. Đã làm cho tôi.
KeithTheBiped

Nếu bạn đã thử chuyển đổi bàn phím bằng shift-command-k thì hãy thử cách này tiếp theo.
KeithTheBiped

@KeithTheBiped, tôi đã thử shift-command-k mà không gặp may trước khi kết thúc với trình mô phỏng ios khởi động lại.
Bukhari

14

Tôi nghĩ rằng đó chỉ là do sự cố mà bạn đã không chọn 'tùy chọn bàn phím phần cứng kết nối, trên thanh menu của trình mô phỏng có tên' Phần cứng '

Vui lòng làm theo các bước

Goto: Phần cứng -> Bàn phím -> Kết nối Bàn phím Phần cứng

Hy vọng nó sẽ giúp bạn vấn đề, Xin cảm ơn.nhập mô tả hình ảnh ở đây


11

Tôi đang nhìn thấy cùng một vấn đề. Tôi tin rằng sự cố liên quan đến phím lệnh bị "kẹt" trong trình mô phỏng nếu bạn xoay thiết bị trong trình mô phỏng bằng các phím tắt Command-LeftArrow và Command-RightArrow.

Trong khi chúng tôi chờ Apple sửa lỗi, một cách để giải quyết vấn đề này là xoay thiết bị bằng cách chọn tùy chọn menu thay vì phím tắt. Thao tác này sẽ xoay thiết bị và dường như để bàn phím ở trạng thái hoạt động.


9

Lặp lại lệnh dưới đây hai lần hiệu quả với tôi !!

CMD + Shift + K


5

Nó không phải là một vấn đề chỉ cần làm các bước đơn giản.

  1. Mở trình mô phỏng

  2. Lên đầu trang Và bạn thấy Phần cứng Tùy chọn, hãy nhấp vào đây.

  3. Khi bạn nhấp vào Phần cứng, một số tùy chọn xuất hiện và một tùy chọn là Bàn phím.

  4. Nhấp vào tùy chọn Bàn phím và bạn thấy ba tùy chọn xuất hiện.

  5. Nếu bạn muốn sử dụng bàn phím nút mac của mình, hãy chọn tùy chọn thứ 2 Kết nối Bàn phím Phần cứng.

  6. Nếu bạn muốn sử dụng bàn phím gõ di động, hãy chọn tùy chọn thứ 3.

  7. Tùy chọn đầu tiên dành cho những người chọn bàn phím của họ thông qua mã.

Hãy tận hưởng tất cả công việc.


1
Nếu nó không hoạt động. Hủy (đóng và khởi động) trình mô phỏng và lặp lại các bước này một lần nữa. Hy vọng nó sẽ hoạt động.
FARAZ

5

Tôi vừa cài đặt phiên bản Xcode mới (5.0) và bàn phím trong Trình mô phỏng iOS không hoạt động trong lần khởi chạy đầu tiên. Chỉ cần khởi động lại Trình mô phỏng đã giúp.


4

Đối với tôi, Chọn Trình mô phỏng, Chọn Phần cứng -> Bàn phím -> Kết nối phần cứng Bàn phím.

Nó đã làm việc cho tôi.


3

Tôi chỉ thử những gì bạn vừa nói và đó là sự thật, sẽ không hoạt động nếu tôi chuyển nó sang phong cảnh rồi lại sang chân dung. Nó không có bất kỳ logic nào vì ứng dụng của tôi thậm chí không thay đổi và nó hoạt động tốt trong thiết bị, vì vậy đó là một lỗi trong trình mô phỏng.

Bạn có thể báo cáo nó với Apple bằng cách sử dụng:

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


2

Giải pháp thực sự hiệu quả đối với tôi, đã được xóa trình mô phỏng và tạo một giải pháp mới. Tôi nghĩ rằng lỗi này thường xảy ra khi tất cả các phím tắt không hoạt động từ bàn phím đến trình mô phỏng của bạn.


2

Thoát trình mô phỏng và chạy lệnh sau trong thiết bị đầu cuối:

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


hoàn thiện câu trả lời này!
Farid Blaster

2

Tôi gặp sự cố với trình mô phỏng iPhone6, tôi đã thay đổi nó thành iPhone7 . Trên iPhone7, tôi có thể tiếp tục công việc của mình.


1

Nếu bàn phím Mac của bạn vẫn bị ngắt kết nối sau khi đã chỉnh sửa tất cả các tùy chọn và cài đặt, một nguyên nhân là do xoay thiết bị.

Nếu bạn CMD+ hoặc xoay thiết bị sớm khi trình mô phỏng đang khởi động, bàn phím Mac sẽ hoàn toàn không hoạt động cho dù thế nào; thay đổi cài đặt menu không làm gì cả! Có thể hữu ích khi sử dụng bàn phím Mac để nhập liệu bên trong thiết bị trước khi bạn xoay thiết bị.

Đôi khi tắt "Gửi lối tắt menu đến thiết bị" và khởi động lại Trình mô phỏng. Tôi sẽ cập nhật nếu tôi nhận được hành vi đáng tin cậy, có thể tái tạo.

Tôi thấy bàn phím Mac hoạt động khoảng một nửa thời gian tôi chạy và thoát khỏi Trình mô phỏng. 50% không tệ sau ngần ấy năm !?


1

Tôi chỉ cần khởi động lại trình mô phỏng và nó đã hoạt động với tôi.



0

Tôi đã gặp sự cố này bất cứ khi nào tôi xoay trình mô phỏng. Tôi không thực hiện theo các đề xuất để thay đổi tùy chọn Phần cứng, khởi động lại Trình mô phỏng iOS cũng không.

Tôi đã tìm thấy một thủ thuật đó là nhấp vào vùng chỉnh sửa sau khi xoay để bàn phím Mac hoạt động.


0

Sau khi thực hiện nhiều thao tác như vậy, chỉ cần khởi động lại máy của tôi và kích hoạt các thao tác bên dưới.

Bật tính năng này trong trình mô phỏng: Phần cứng -> Bàn phím -> Kết nối Bàn phím Phần cứng


0

Đối với Phiên bản 10.0 (SimulatorApp-851.2 CoreSimulator-518.19) với Xcode 9.3, không có gì hiệu quả với tôi. Tôi đặt lại trình mô phỏng bằng Phần cứng -> Xóa Tất cả Nội dung và Cài đặt -> Xóa. Đã xóa dự án và chạy trên trình mô phỏng. Kết nối bàn phím đã trở lại.


0

Tôi gặp sự cố này sau khi xóa Main.storyboardvà tạo cửa sổ chính bằng mã. Hoàn nguyên trở lại sử dụng đã Main.storyboardsửa nó cho tôi.


0

Đối với tôi, việc này hoạt động trên iPhone 8+ giả lập iOS 11.2: 1. Đi tới Menu -> Phần cứng -> Xóa tất cả nội dung và cài đặt. 2. Xóa dữ liệu có nguồn gốc từ xcode. Xcode -> Preferences -> Locations -> Click vào mũi tên phải ở bên trái của nút "Advanced".


0

đối với tôi, trên trình mô phỏng đã mở, trong menu của máy mac của bạn, nhấp vào Tùy chọn phần cứng và tiếp cận bàn phím và chọn chuyển đổi bàn phím phần mềm. như hình


0

Có một thư viện để chỉnh sửa các tệp plist được gọi là plistlib. Đây là mã của tôi:

    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")

Thao tác này đọc tệp plist, thay đổi ConnectHardwareKeyboardgiá trị thành Novà sau đó ghi tệp mới vào cùng một vị trí. Điều này phù hợp với tôi, nhưng hãy cho tôi biết nếu có cách nào tốt hơn để làm điều đó. Tôi vẫn là người mới viết mã.


0

Tôi vừa thoát khỏi trình mô phỏng của mình và nó đã hoạt động với tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.