一个界面,有多个UITextField的时候,点击提交按钮发送数据时,取消键盘
2013-11-19 15:32
381 查看
一个界面,有多个UITextField的时候,点击提交按钮发送数据时,取消键盘
我们都知道,UITextField取消键盘用resignFirstResponder,
当一个界面有多个UITextField时,对每个UITextField变量用resignFirstResponder太麻烦了,
可以用转载的下面这篇文章的方法:
转载自:http://my.oschina.net/hmj/blog/100020
原
发表于10个月前(2013-01-05 10:34) 阅读(439) | 评论(0) 2人收藏此文章, 我要收藏
赞0
IOS endEdting
键盘的显示和关闭》 一篇介绍了键盘的显示与关闭的原理流程性的东西,在关闭如果当前我们正在在textField上输入文本的话,我们只要做如下操作
即可将键盘关闭,但随之问题也就出现了,假如考虑我们现在在应用中包含一了表单模块,要求填完表单之后我们要将数据进行保存,该表单可能包含了十几个UITextField对应的数据 输入项。此外包含了一个“提交”按钮,点击提交数据发送后台的过程中,我们要弹出一个简单的提交等待弹出框告知用户等待。整个流程并不复杂,但是涉及到了一个UI显示细节问题,即: 在用户等待的过程中键盘可能一直处于显示状态,虽然可能被弹出框的遮罩遮住,也许可能有些人不介意,但个人感觉正确正确的显示状态是,在点击提交数据后,紧接着是马上关闭键盘, 然后显示等待弹出框。因此,这涉及到要跟踪当前处于First
Responder状态的UITextField对象,好让我们在提交的action中调用其resignFirstResponder方法关闭键盘,这 是我们可能直观上首先想到的问题的解决办法,的确,这也是最直观的。通常在IOS的MVC设计中,一个模块往往会对应一个UIViewController,假设我们的表单提交对应的Controller名为 FormViewController,我们可以用如下代码来简单解释以上处理流程:
view
source
print?
这里FormViewController首先实现了UITextFieldDelegate协议,在viewDidLoad的时候,让所有textField的delegate都指向FormViewController,并且添加了editingTextField属性用于保存当前处于编辑状态下的textField对象,具体的跟踪方法是在在textFieldDidBeginEditing:代理方法中实现,这样在submitForm时,我们边可以调用
我们都知道,UITextField取消键盘用resignFirstResponder,
当一个界面有多个UITextField时,对每个UITextField变量用resignFirstResponder太麻烦了,
可以用转载的下面这篇文章的方法:
转载自:http://my.oschina.net/hmj/blog/100020
UIView之endEditing方法
原发表于10个月前(2013-01-05 10:34) 阅读(439) | 评论(0) 2人收藏此文章, 我要收藏
赞0
IOS endEdting
问题
在 《IOS键盘的显示和关闭》 一篇介绍了键盘的显示与关闭的原理流程性的东西,在关闭如果当前我们正在在textField上输入文本的话,我们只要做如下操作
1 | [textField resignFirstResponder] |
Responder状态的UITextField对象,好让我们在提交的action中调用其resignFirstResponder方法关闭键盘,这 是我们可能直观上首先想到的问题的解决办法,的确,这也是最直观的。通常在IOS的MVC设计中,一个模块往往会对应一个UIViewController,假设我们的表单提交对应的Controller名为 FormViewController,我们可以用如下代码来简单解释以上处理流程:
view
source
print?
01 | #import "FormViewController.h" |
02 |
03 | @interface FormViewController ()<UITextFieldDelegate> |
04 |
05 | @property (weak, nonatomic) IBOutlet UITextField *textFieldA; |
06 | @property (weak, nonatomic) IBOutlet UITextField *textFieldB; |
07 | @property (weak, nonatomic) IBOutlet UITextField *textFieldC; |
08 | @property (weak, nonatomic) IBOutlet UITextField *textFieldD; |
09 | @property (weak, nonatomic) IBOutlet UITextField *textFieldE; |
10 | @property (weak, nonatomic) IBOutlet UITextField *textFieldF; |
11 | @property (weak, nonatomic) IBOutlet UITextField *textFieldG; |
12 | @property (weak, nonatomic) IBOutlet UITextField *textFieldH; |
13 | @property (weak, nonatomic) IBOutlet UITextField *textFieldI; |
14 |
15 | @property (weak , nonatomic) UITextField *editingTextField ; // 跟踪当前处于编辑状态的textfield |
16 |
17 | @end |
18 | @implementation FormViewController |
19 | @synthesize textFieldA,textFieldB,textFieldC, |
20 | textFieldD,textFieldE,textFieldF,textFieldG,textFieldH, |
21 | textFieldI,editingTextField; |
22 | - ( void )viewDidLoad |
23 | { |
24 | [super viewDidLoad]; |
25 | self.textFieldA.delegate = self ; |
26 | self.textFieldB.delegate = self ; |
27 | self.textFieldC.delegate = self ; |
28 | self.textFieldD.delegate = self ; |
29 | self.textFieldE.delegate = self ; |
30 | self.textFieldF.delegate = self ; |
31 | self.textFieldG.delegate = self ; |
32 | self.textFieldH.delegate = self ; |
33 | self.textFieldI.delegate = self ; |
34 |
35 | } |
36 | - ( void )viewDidUnload { |
37 | [self setTextFieldA:nil]; |
38 | [self setTextFieldB:nil]; |
39 | [self setTextFieldC:nil]; |
40 | [self setTextFieldD:nil]; |
41 | [self setTextFieldE:nil]; |
42 | [self setTextFieldF:nil]; |
43 | [self setTextFieldG:nil]; |
44 | [self setTextFieldH:nil]; |
45 | [self setTextFieldI:nil]; |
46 | [self setEditingTextField:nil]; |
47 | [super viewDidUnload]; |
48 | } |
49 | // UITextFieldDelegate 方法 |
50 | - ( void )textFieldDidBeginEditing:(UITextField *)textField |
51 | { |
52 | self.editingTextField = textField ; |
53 | } |
54 | // 提交Action |
55 | - (IBAction)submitForm:(UIBarButtonItem *)sender |
56 | { |
57 | [self.editingTextField resignFirstResponder]; |
58 | // 提交表单,弹出提示等待框,略 |
59 | } |
1 | [self.editingTextField resignFirstResponder]; |
相关文章推荐
- 一个界面,有多个UITextField的时候,点击提交按钮发送数据时,取消键盘
- 在一个Record Center(记录中心)中,在编辑文档的属性时,点击“Submit(提交)”按钮的时候发生了什么
- 在Fragment中点击退出按钮,退出到登录界面后(按返回键退出程序开始的时候,退出到登录界面按返回键无法退出程序,而是返回到上一个Activity,网上说是没有finish掉上一个Activity)
- EasyUI配置当点击一个datagrid的checkbox选中或取消选中记录的时候刷新另一个datagrid数据的方法
- 如何用数据驱动实现通用化巡检APP(如何一个界面里添加多个点击拍照按钮并显示在不同的imageview里)
- 点击添加按钮关闭窗口,再点击修改按钮,提交后携带的是添加的数据
- \**scrollview嵌套多个编辑框,底部有一个提交的按钮,但是内容不多,滑动的距离不大,当输入完时,键盘把提交的按钮遮挡住了,必须得按返回键才能回起键盘,这样不太好
- JS实现文本框的值输入不合规范的时候,点击按钮不能提交
- 关于点击某个字段的时候弹出一个dialog的方法(显示dialog里面datagrid的表的数据)
- iOS 点击键盘return按钮 文本框UiTextField 自动换行
- vs2013建立一个登陆界面后点击按钮调出另外一个界面
- 一个界面里面有多个UITextField时,点击每个UITextField都会进入textFieldShouldBeginEditing delegate方法
- 在TWebbrowser 中模拟点击一个提交按钮
- ext4.1 实现按钮点击时候浏览器全屏和取消全屏。
- 点击不同的按钮把同一个表单提交到不同的页面处理的方法
- C#模拟点击网页按钮,提交数据有关问题
- Asp.net 按钮防止点击多次数据提交
- 设计一个JFrame窗口,输入学生的基本信息,包括学号、姓名、学院、专业(下拉列表)、班级、籍贯(级联)、性别(单选按钮)、爱好(多选)、备注等,在界面中包括提交和重填按钮。提交后弹出窗口显示学生信息
- 注册或者点击按钮时,怎么防止用户重复提交数据(实例讲解)
- 重载确认对话框,点击确定触发一个隐藏按钮事件,点击取消触发一个隐藏按钮事件