2013-04-06 25 views
7

Tôi có ba trường văn bản và tôi muốn có thể di chuyển con trỏ sang trường tiếp theo. Khi người cuối cùng đạt được, bàn phím sẽ loại bỏ. Nhưng không có gì hiệu quả đối với tôi ... Đây là một ví dụ về những gì tôi có. Tuy nhiên, không có gì di chuyển và không có gì xảy ra khi tôi chọn nút tiếp theo.Cách di chuyển con trỏ UITextField sang trường văn bản tiếp theo

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == field1TextField) { 
     [textField resignFirstResponder]; 
     [field2TextField becomeFirstResponder]; 
    } 
    else if (textField == field2TextField) { 
     [textField resignFirstResponder]; 
     [field3TextField becomeFirstResponder]; 
    } 
    else if (textField == field3TextField) { 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 
+3

Bạn có chắc chắn các đại biểu trường văn bản được đặt chính xác không? Phương pháp này có được gọi là không? – stevex

+0

Phương pháp này có được gọi không? Nếu nó .. và textField == field1TextField khối được gọi là .. và field2TextField không phải là nil .. sau đó có vẻ như nó sẽ làm việc – stevex

+0

Tạo thành bình luận của bạn như là một câu hỏi! tôi quên làm điều đó! tôi sẽ kiểm tra đánh dấu nó! –

Trả lời

3

Đối tượng mà phương pháp này nhất thiết phải được đặt làm đại biểu của trường văn bản. Kiểm tra điều này bằng cách thiết lập một điểm dừng trong phương thức để xác minh rằng nó được gọi khi bạn nghĩ nó.

Nếu bạn đang sử dụng ngòi hoặc bảng phân cảnh, các biến đối tượng field... sẽ là các cửa hàng được nối chính xác. Nếu chúng được tạo lập trình, bạn nên đảm bảo rằng chúng có các đối tượng được gán cho chúng. Xác minh điều này bằng cách kiểm tra các giá trị của các biến này khi bạn ở bên trong phương thức.

Bạn không phải gọi resignFirstResponder trên các điều khiển khác trước khi gọi số becomeFirstResponder trên thiết bị khác.

+0

Cảm ơn câu trả lời của bạn –

Các vấn đề liên quan