[iOS]UITableViewController完成收回键盘操作

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

时间: 2024-10-05 04:44:59

[iOS]UITableViewController完成收回键盘操作的相关文章

iOS 点击空白处收回键盘的几个简单代码

//收回键盘1 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { [((UIView*)obj) resignFirstResponder]; }]; } //收回键盘2 - (void)resignKeyBoardInView:(UIView

IOS seachbar 收回键盘

1 //点击搜索 收回键盘 2 3 -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ 4 5 6 7 [_searchBar resignFirstResponder];//放弃第一响应者对象,关闭虚拟键盘 8 } 代理 UISearchBarDelegate

2015 IOS 收回键盘——在蓝懿教育

一.使用OC1.首先, 要添加代理 UITextFieldDelegate2.设置代理 textField.delegate = self;3.实现协议中的方法 //点击return收回键盘- (BOOL)textFieldShouldReturn:(UITextField *)textField { //回收键盘,取消第一响应者 [textField resignFirstResponder]; return YES; } //点击空白处收回键盘- (void)touchesEnded:(NS

iOS开发之软键盘使用小技巧

在iOS开发过程中,有时候需要弹出软键盘进行输入,有时候又需要在某些情况下隐藏软键盘,以提高用户体验.今天有几个关于软键盘的小技巧和大家分享. (1)只弹出数字键盘 有某些需求中,要求用户只能在Text Field中只能输入数字,这需要怎么做呢?可以写一个正则表达式用于判断用户输入:或者进行字符匹配等等.但是这都要写代码.程序员都是爱偷懒的.在iOS中可以通过简单设置,使弹出为数字键盘,这样用户输入就只能为数字了. 选中某个Text Field.选择右侧的Show the Attributes

iOS 开发之 - 关闭键盘 退出键盘 的5种方式

iOS 开发之 - 关闭键盘 退出键盘 的5种方式 1.点击编辑区以外的地方(UIView) 2.点击编辑区域以外的地方(UIControl) 3.使用制作收起键盘的按钮 4.使用判断输入字元 5.关于键盘遮蔽的问题 1,点击编辑区以外的地方(UIView) 这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一文

Linux 用键盘操作窗口

以下是我从各处搜集来的关于用键盘操作窗口信息,操作可能不是最简或者最好的,当然也可能不是最全的,以后遇到新的操作,我会即使添加,如果你有我没有列出的操作,希望你能提出,我可以加上! 我实验的操作系统是ubuntu14.04,其他不清楚 1. 用键盘移动窗口 1)ALT+F7 快捷键, 然后用上.下.左.右键移动窗口 2)ALT+space(空格键),然后按m键,进入移动模式,然后用上.下.左.右键移动窗口 2.改变窗口大小 1)ALT+F8 快捷键, 然后用上.下.左.右键改变窗口大小 2)AL

WebDriver API——鼠标及键盘操作Actions

在自动化中我们可能需要用到鼠标或者是键盘操作,在webdriver中是Actions类进行这些操作的. 代码如下: Actions action = new Actions(driver); //-------定义一个action对象 action.click(); action.click(searchBt); //-------单击操作 action.doubleClick().perform(); action.doubleClick(searchBt).perform(); //----

IntelliJ IDEA全键盘操作

IntelliJ IDEA 如何做到全键盘操作呢? 1.自定义快捷键实现全屏操作 你可以设置自定义快捷键进入全屏操作,并实现各个窗口之间的切换.这样,你就可以告别小窗口的时代,体验全屏显示的效果了!(相信有过多年开发经验的你一定会觉得小窗口非常不便于阅读代码,特别是对于小屏幕的笔记本来说) 操作:在File/Settings(或Ctrl+Alt+S)打开设置界面,在搜索框中搜Keymap.然后将之前的keymap文件复制一份.因为原文件是不可以改动的,只有复制一份再对它进行设置自定义快捷键. 设

[转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作

从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“从Eclipse到Android Studio”博文,于是心潮澎湃我也想一篇,分享自己用这个IDEA的一些技巧和感受. 来到公司的第一天,我的同事(也是我的师傅)就让我装IntelliJ IDEA.一开始我还不知道IntelliJ IDEA是什么,后来才知道它是一个Java的集成开发环境(IDE),