博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于在多个UItextield切换焦点
阅读量:7034 次
发布时间:2019-06-28

本文共 2399 字,大约阅读时间需要 7 分钟。

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

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

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

  

 

用了一个比较优雅的写法

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 }

 

转载于:https://www.cnblogs.com/zuopeng/p/4076972.html

你可能感兴趣的文章
js 算法3
查看>>
【Java 容器面试题】谈谈你对HashMap 的理解
查看>>
分组圆角TableView
查看>>
高级Java研发者在解决大数据问题上的一些技巧
查看>>
用 Node 开发一个命令行版本词典--不到十行的代码
查看>>
支持多解码模块的安卓视频播放器AndroidVideoplayer
查看>>
TCP协议详解
查看>>
Node.js process 模块解读
查看>>
Lodash源码分析-compact.js
查看>>
度小满牵手南京银行打造”AI鑫”计划:银行零售业掀起变革运动
查看>>
微信小程序之分享海报生成
查看>>
敏捷AI|NLP技术在宜信业务中的实践「背景篇」
查看>>
布局结束检测工具
查看>>
[MetalKit]21-What's-new-in-graphics-and-games-at-WWDC-2016
查看>>
html2canvas在vue下的巨坑
查看>>
从设计师和开发的角度使用 lottie
查看>>
iOS之自定义tabBar
查看>>
Spring boot学习(三) Spring boot整合mybatis
查看>>
Redux 源码深度解析(附带视频1月14号上传)
查看>>
理解webpack原理,手写一个100行的webpack
查看>>