Swift - 文本输入框内容改变时响应,并获取最新内容
2015-09-26 18:08
721 查看
1,问题描述
有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用。
2,实现原理
(1)要检测文本框内容的变化,我们需要让新界面的Controller遵循一个文本协议UITextFieldDelegate。
同时在viewDidLoad方法内将文本框的代理设置为MainListController当前实例。
然后实现textFile的shouldChangeCharactersInRange方法就能在文本框将要变化的时候执行一些代码。
(2)但这个只是将要变化时执行,而不是变化后。比如在这个方法内打印出文本框的内容,会发现每当我们改变文本框的内容时,打印出来的是上一次的内容。
比如先输入1,打印出来是空。再输入2,文本框上是12,但打印出来却是1.
要获取最新内容,则需要String的stringByReplacingCharactersInRange方法,但这个方法在Swift的String中又不支持。要解决这个问题,就要先替NSRange做个扩展。
3,代码如下
有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用。
2,实现原理
(1)要检测文本框内容的变化,我们需要让新界面的Controller遵循一个文本协议UITextFieldDelegate。
同时在viewDidLoad方法内将文本框的代理设置为MainListController当前实例。
然后实现textFile的shouldChangeCharactersInRange方法就能在文本框将要变化的时候执行一些代码。
(2)但这个只是将要变化时执行,而不是变化后。比如在这个方法内打印出文本框的内容,会发现每当我们改变文本框的内容时,打印出来的是上一次的内容。
比如先输入1,打印出来是空。再输入2,文本框上是12,但打印出来却是1.
要获取最新内容,则需要String的stringByReplacingCharactersInRange方法,但这个方法在Swift的String中又不支持。要解决这个问题,就要先替NSRange做个扩展。
3,代码如下
相关文章推荐
- Swift - 创建代理协议实现页面间参数传递和方法调用
- Swift - 使用storyboard创建表格视图(TableViewController)
- Swift - 歌曲播放样例(附带播放时间和播放进度)
- Swift - 给表格添加Cell的显示动画(3D缩放)
- Swift - 异步加载图片
- Swift学习笔记2——基本类型和基本运算
- Swift学习笔记番外篇1——桥接C源文件,实现控制台输入
- Swift学习笔记1——入门
- 【iOS】Swift扩展extension和协议protocol
- Swift - 九宫格图片缩放总结样例
- swift基础篇:iOS控件大拌菜:UILable UIButton UITextView
- Swift 分割字符串
- Openstack swift对象存储
- swift语言基础:UIView视图,CGRect,UIColor
- The Swift Programming Language 翻译 —— 错误处理
- 获取安装游戏应用设备信息(swift)
- coredata swift 简单入门
- Swift String Extension
- Swift - 使用xib添加新界面
- Swift - 浮点数转换成整数(四舍五入与直接截断)