让iOS输入键盘支持Next动作

参考:http://blog.csdn.net/chengkaizone/article/details/25880947

在Textfield输入框搭建时可以设置输入后键盘enter变为指定的意义, 比如"下一项"/"完成"之类的。
但是, 其实它并没有包含具体的意义, 当你需要进行下一个输入框操作的时候, 你需要程序去控制它。

首先你需要知道几个textfield操作键盘的api

  • 释放键盘焦点
    [txtField resignFirstResponder];

  • 激活键盘焦点
    [txtField becomeFirstResponder];

  • 绑定txtField事件所需的代理类

txtField。delegate = self;
//此时的self必须继承<UITextFieldDelegate>
  • 当enter键按下调用下面这个方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
//此时textField为当前输入中的文本框
//可以这样进行判断
  if(textField==txtA){
    [txtB becomeFirstResponder];
  }
  return true;
}

更多的文本相互依赖, 在上面的逻辑进行判断和激活新的键盘响应, 最后一个文本可以直接实现点击按钮的效果

  • 添加文本事件
[txtField addTarget:self action:@selector(onActTxt:) forControlEvents:UIControlEventEditingChanged];

另外说一点, textField类是基于UIControll类的, 而不是直接基于UIView。 这也表示这个类支持添加对象方法, 貌似delegate和addTarget方法有部分是通用的, 并没具体去测试, 大家有兴趣可以去尝试和指正

比如上面这个改变文本的方法, 只能检测改变, 而用代理可以知道输入的文本
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容