TextField都使用了placeholder属性,但在代码中又设置了text属性,因此ViewController会同时显示placeholder文本和text文本。
这个问题让我彻底崩溃。按道理说当text中的文本长度为0时placeholder文本显示,text文本长度不为0时placeholder应该隐藏才对?
而且正常情况下我也没有遇到过这个问题。后来我新建项目,进行多次尝试都不能复现这个问题。
虽然问题导致的原因至今没有找到。但google工作成果也不是一点没有。*上有人提到了一个问题,也许跟本文不无关联:
“iOS 6 SDK之前(例如5.1 SDK),不管是不是用代码改变了Text Field的text属性,都会导致UITextFieldTextDidChangeNotification
通知产生。而到了iOS 6 SDK,如果是用代码改变了Text的值,UITextFieldTextDidChangeNotification通知不会产生。”
我从此受到了启发。既然如此,那么每当我修改Text属性之后(编码方式),手动Post一个UITextFieldTextDidChangeNotification
通知会怎样呢?例如:
tfPhone.text = “1255”
NSNotificationCenter.defaultCenter().postNotificationName(UITextFieldTextDidChangeNotification, object: self.tfPhone)
传送门
http://blog.csdn.net/kmyhy/article/details/49585695