Đồng thời người trả lời cũng không giúp gì sau khi tôi đã gửi trường văn bản của mình.
Phần đó không có ý nghĩa. Theo mặc định, trường văn bản không loại bỏ bàn phím trừ khi bạn loại bỏ nó bằng endEditing:
hoặc resignFirstResponder
. Nếu bàn phím biến mất, bạn phải là làm cho bị mất. Vì vậy, không và nó sẽ không.
EDIT: Và thực sự, nhận xét của bạn sau đó sẽ tiết lộ câu trả lời: bạn đã kết nối sự kiện kiểm soát didEndOnExit
từ trường văn bản. Vâng, điều đó khiến bàn phím bị loại bỏ khi người dùng nhấn nút Xong! Vì vậy, bạn có hiệu quả đánh mình vào mặt và sau đó phàn nàn rằng ai đó đang đánh bạn vào mặt.
Vì vậy, giải pháp rõ ràng là không kết nối sự kiện kiểm soát didEndOnExit
(với bất kỳ sự kiện nào). Thay vào đó, chỉ cần cung cấp cho các trường văn bản một đại biểu và sử dụng các tin nhắn đại biểu để tìm hiểu những gì người dùng đang làm. Không ai trong số đó có bất kỳ hành vi tự động nào liên quan đến bàn phím, vì vậy bàn phím sẽ không bị loại bỏ tự động. Ví dụ: để tìm hiểu thời điểm người dùng nhập, sử dụng textField:shouldChangeCharactersInRange:replacementString:
. Để tìm hiểu thời điểm người dùng đã nhấn nút Xong, hãy sử dụng textFieldShouldReturn:
. Và cứ thế.
Đúng, didEndOnExit được liên kết với IBAction đang kiểm tra văn bản nhập của người dùng. Tuy nhiên nếu tôi không liên kết nó đã làmEndOnExit, làm thế nào tôi có thể biết khi nào người dùng gõ xong và nhấn nút xong? Về cơ bản tôi muốn đạt được điều này: 1. Bàn phím hiển thị khi cửa sổ được tải 2. Người dùng điền vào trường văn bản, nhấn nút DONE hoặc nút khác tôi đặt bên cạnh trường 3. Mã của tôi kiểm tra để xem nếu chuỗi đúng và thực hiện một số hành động 4. Trong khi tiêu điểm vẫn nằm trong trường văn bản và bàn phím vẫn hiển thị – user2292949
Yup, tốt, đừng làm vậy. Bản thân bạn đang làm điều mà bạn đang phàn nàn. Vì vậy, chỉ cần ngừng làm việc đó và vấn đề sẽ biến mất. Xem câu trả lời đã chỉnh sửa của tôi. – matt
Cảm ơn, đó có vẻ là câu trả lời tôi đang tìm kiếm. Tôi sẽ cập nhật mã và mục nhập của mình sau khi hoàn thành những gì tôi định làm. Về việc đánh vào mặt mình; Tôi có thể sẽ làm điều đó một lúc, vì tôi chỉ bắt đầu phát triển IOS và OOP. – user2292949