iPad bàn phím ảo sẽ biến mất trong một số (ít nhất) những 3 trường hợp:Phát hiện ẩn bàn phím iPad so với bàn phím bên ngoài có kết nối không?
- Nếu sự kiểm soát (ví dụ, một UITextField) lập trình từ chức responder đầu tiên.
- Nếu người dùng nhấn vào nút "loại bỏ bàn phím" ở phía dưới bên phải.
- Nếu người dùng kết nối với đế cắm USB/bàn phím ngoại vi.
Trong mọi trường hợp, tôi nhận được UIKeyboardWillHideNotification
.
Vấn đề là hai trường hợp đầu tiên thường tương đương - nói cách khác, người dùng đã hoàn tất chỉnh sửa trường văn bản. Nhưng trong trường hợp thứ ba, trường văn bản vẫn đang được chỉnh sửa, chỉ từ một nguồn đầu vào khác.
Sự cố đang phát hiện sự khác biệt giữa các trường hợp 2 và 3. Tất cả những gì tôi nhận được trong cả hai trường hợp là UIKeyboardWillHideNotification
. Trong trường hợp 2, tôi thường muốn khóa điều khiển chỉnh sửa và cam kết giá trị. Trong trường hợp 3, tôi thường không muốn làm gì và cho phép chỉnh sửa để tiếp tục.
Nhưng làm cách nào tôi có thể biết sự khác biệt?
Ứng dụng Trang của Apple dường như có thể phân biệt được việc đổi tên tài liệu.
Đáng tiếc là không có. Bàn phím vật lý không tạo ra UIKeyboardWillShowNotification khi nó xuất hiện. Việc gắn nó chỉ tạo ra một thông báo WillHide tương ứng với thông báo ảo. –
Trong trường hợp 1, điều khiển mất tiêu điểm. Điều này cũng đúng trong trường hợp 2? Tôi giả định trong trường hợp 3 kiểm soát vẫn giữ được trọng tâm. – drawnonward
Trong trường hợp 2 và 3, điều khiển tiếp tục là firstResponder. Từ chức trả lời đầu tiên sẽ loại bỏ bàn phím, nhưng ngược lại không rõ ràng là đúng. –