UITableViewController 本身能够实现键盘适配(cell中控件焦点会移动到键盘上方
在做键盘收回的时候思考过如下方案
1、tableview添加点击事件
结果:点击事件和tableview的didselect 冲突,导致didselect失效
2、scrollview代理滚动收回键盘
结果:目的可以达到,但是当点击textfield的时候,此时键盘会出现之后直接收回。原因是先适配→调用scrollview代理。
最后采用如下方案 如图:
<span style="font-family: Arial, Helvetica, sans-serif;">_sureBtn = [UIButton buttonWithType:UIButtonTypeCustom];</span>
_sureBtn.frame = CGRectMake(self.view.size.width-60, 5, 50, 28);
_sureBtn.backgroundColor = [UIColor colorWithRed:0.150 green:0.662 blue:0.915 alpha:1.000];
_sureBtn.titleLabel.font = [UIFont systemFontOfSize:15];
_sureBtn.layer.cornerRadius = 5.0;
[_sureBtn setTitle:@"确定" forState:UIControlStateNormal];
[_sureBtn addTarget:self action:@selector(changeRemarks) forControlEvents:UIControlEventTouchUpInside];
_view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)];
_view.backgroundColor=[UIColor whiteColor];
UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 0.5)];
line.backgroundColor = [UIColor blackColor];
[_view addSubview:line];
[_view addSubview:_sureBtn];
在使用的时候,对Textfield进如下处理
_begoodatField.inputAccessoryView = _view;
如果是tableview中cell的文本框
则需要在定义一个临时textfield。
使用的时候
_xuexiaoField=cellMenu.celltext;
_xuexiaoField.inputAccessoryView = _view;//<span style="font-family: Arial, Helvetica, sans-serif;">cellMenu为自定义cell的名字</span>
附上确定按钮方法
- (void)changeRemarks
{
[_nicktextField resignFirstResponder];
[_xuexiaoField resignFirstResponder];
[_begoodatField resignFirstResponder ];
[_bumenField resignFirstResponder ];
}
https://github.com/KKKKaras/SureBtnDemo