Tôi đang tạo màn hình đăng nhập cho ứng dụng của mình và tôi muốn nút quay lại hiển thị "Tiếp theo" khi có trường chưa được điền và có thể nói "Đi "khi tất cả các trường được điền (tôi đang nói về UITextFields).Thay đổi returnButton trong khi chỉnh sửa đóng băng bàn phím cho 1 tap
Mã bên dưới hoạt động tốt ở chỗ nó hiển thị Tiếp theo và Chuyển đến đúng thời điểm. Nhưng bất cứ khi nào nó thay đổi từ "Next" thành "Go", lần nhấn tiếp theo trên bàn phím sẽ bị bỏ qua. Khi nó nói "Go" và tôi làm rỗng các textfield bằng backspacing không có vấn đề như vậy và nó cho thấy tiếp theo như nó cần. Nó gần giống như bàn phím cũ vẫn còn đó và biến mất sau khi được khai thác.
Câu hỏi của tôi là: nguồn gốc của vấn đề này là gì và quan trọng hơn là làm cách nào để loại bỏ phần đóng băng này?
UITextField *theSender = (UITextField *)sender;
if (allTextFieldsAreFilled) {
if (theSender.returnKeyType!=UIReturnKeyGo) {
theSender.returnKeyType = UIReturnKeyGo;
[theSender resignFirstResponder];
[theSender becomeFirstResponder];
}
} else {
if (theSender.returnKeyType!=UIReturnKeyNext) {
theSender.returnKeyType = UIReturnKeyNext;
[theSender resignFirstResponder];
[theSender becomeFirstResponder];
}
}
Mã này được gọi mỗi khi giá trị của một trong ba UITextField được thay đổi, do đó, IBAction được kết nối với sự kiện Chỉnh sửa đã thay đổi.
Cảm ơn trước sự giúp đỡ của bạn!
EDIT
tôi phát hiện ra điều này sẽ chỉ xảy ra nếu các textfield được thiết lập để bảo đảm (mật khẩu). Khi nó không được thiết lập để bảo mật nó sẽ không đóng băng và mã của tôi hoạt động hoàn hảo! Vấn đề là sự thay đổi nút "Go" thường sẽ xảy ra khi một trường văn bản 'an toàn' là nắm tay trả lời. Vì vậy, điều này không thay đổi bất cứ điều gì cho vấn đề.
Thật lạ lùng, tôi sẽ kiểm tra mã của tôi với mã của bạn. – Manuel
Tôi đã sao chép mã của bạn nhưng mã sẽ không ngừng đóng băng. – Manuel
Hmm; phải có cái gì đó khác. Bạn đang sử dụng SDK, iOS và thiết bị nào? Bạn đã thử tạo một dự án mới để thử nghiệm nó chưa? Hoặc chỉ sử dụng cái hiện tại của bạn? – Wex