码迷,mamicode.com
首页 > 其他好文 > 详细

关于在多个UItextield切换焦点

时间:2014-11-05 19:26:00      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   使用   for   sp   div   

本人对于应用的完美用户体验是这样认为:当一个应用是迎合用户习惯 ,并且在人机交互之中降低用户的学习成本 ,由于应用和人的思维方向一致时,就会有共鸣,这对于程序设计是有益的,因为只要愿意去改变总有优雅的方式出现。对于程序体验也是一样,回想使用软件的时候,输入账号和密码,输入账号点击一次账号UItextield,输完之后再点击密码UItextield;

现在想起里这样太反人类了,程序不是应该贴近人的思维方式呢?输入完账号,利用键盘的return切换到下一个密码UItextield,当账号和密码完成之后再安return完成保存,这样的用户体验才连贯,用户无意之间点击了return发现回自动切话,智能的东西总是会惹人爱,先贴一个用户界面,下面再附上代码;

自动修改 return显示的内容( Next , Done )

bubuko.com,布布扣  bubuko.com,布布扣

 

用了一个比较优雅的写法

 1 -(BOOL)textFieldShouldReturn:(UITextField *)textField{//传入的是当前使用的textField
 2     [self switchtextField:textField];
 3     return YES;
 4 }
 5 
 6 //在弹出键盘之前检查输入状态,只有一个有输入那么按键就是Next,2个完成输入就Done
 7 - (void)textFieldDidBeginEditing:(UITextField *)textField{
 8     if ([textField isEqual:self.textFieldTitle]) {
 9         textField.returnKeyType = [self.textFieldSubTitle.text length] ? UIReturnKeyDone :UIReturnKeyNext;
10     }else if([textField isEqual:self.textFieldSubTitle]){
11         textField.returnKeyType = textField.returnKeyType = [self.textFieldTitle.text length] ? UIReturnKeyDone :UIReturnKeyNext;
12     }
13 }
14 
15 -(void)switchtextField :(UITextField*) textField {
16     NSUInteger titLenth = [self.textFieldTitle.text length];
17     NSUInteger  subLenth = [self.textFieldSubTitle.text length];
18     
19     if ([self.textFieldTitle isFirstResponder]) {
20         [self.textFieldSubTitle becomeFirstResponder];
21     }else if([self.textFieldSubTitle isFirstResponder]){
22         [self.textFieldTitle becomeFirstResponder];
23     }
24     
25     if (titLenth && subLenth) {
26         [textField resignFirstResponder];
27         BOOL CanSegue = [self shouldPerform:kUNWIND_ID];
28         if (CanSegue)
29             [self performSegueWithIdentifier:kUNWIND_ID sender:nil];
30         
31     }
32 }
33 
34 -(BOOL) shouldPerform:(NSString *)identifier  {
35     if ([identifier isEqualToString:kUNWIND_ID]) {
36         if (!self.image) {
37             [self alert:@"No Photo taken!"];
38             return NO;
39         }else if(![self.textFieldTitle.text length] || ![self.textFieldSubTitle.text length]){
40             [self.textFieldTitle.text length] ? [self alert:@"SubTitle required!"]   :
41             [self.textFieldSubTitle.text length] ?  [self alert:@"Title required!"]  :
42             [self alert:@"Title and SubTitle required"] ;
43             return NO;
44         }else{
45             return YES;
46         }
47     }else{
48         return NO;
49     }
50 
51 }

 

关于在多个UItextield切换焦点

标签:style   blog   http   color   os   使用   for   sp   div   

原文地址:http://www.cnblogs.com/zuopeng/p/4076972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!