參考:http://blog.csdn.net/chengkaizone/article/details/25880947
在Textfield輸入框搭建時(shí)可以設(shè)置輸入后鍵盤enter變?yōu)橹付ǖ囊饬x, 比如"下一項(xiàng)"/"完成"之類的。
但是, 其實(shí)它并沒有包含具體的意義, 當(dāng)你需要進(jìn)行下一個(gè)輸入框操作的時(shí)候, 你需要程序去控制它。
首先你需要知道幾個(gè)textfield操作鍵盤的api
釋放鍵盤焦點(diǎn)
[txtField resignFirstResponder];
激活鍵盤焦點(diǎn)
[txtField becomeFirstResponder];
綁定txtField事件所需的代理類
txtField。delegate = self;
//此時(shí)的self必須繼承<UITextFieldDelegate>
- 當(dāng)enter鍵按下調(diào)用下面這個(gè)方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
//此時(shí)textField為當(dāng)前輸入中的文本框
//可以這樣進(jìn)行判斷
if(textField==txtA){
[txtB becomeFirstResponder];
}
return true;
}
更多的文本相互依賴, 在上面的邏輯進(jìn)行判斷和激活新的鍵盤響應(yīng), 最后一個(gè)文本可以直接實(shí)現(xiàn)點(diǎn)擊按鈕的效果
- 添加文本事件
[txtField addTarget:self action:@selector(onActTxt:) forControlEvents:UIControlEventEditingChanged];
另外說一點(diǎn), textField類是基于UIControll類的, 而不是直接基于UIView。 這也表示這個(gè)類支持添加對(duì)象方法, 貌似delegate和addTarget方法有部分是通用的, 并沒具體去測(cè)試, 大家有興趣可以去嘗試和指正
比如上面這個(gè)改變文本的方法, 只能檢測(cè)改變, 而用代理可以知道輸入的文本
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;