placeholder 解决UITextField中placeholder和text文本同时显示的问题

TextField都使用了placeholder属性,但在代码中又设置了text属性,因此ViewController会同时显示placeholder文本和text文本。 
这个问题让我彻底崩溃。按道理说当text中的文本长度为0时placeholder文本显示,text文本长度不为0时placeholder应该隐藏才对? 
而且正常情况下我也没有遇到过这个问题。后来我新建项目,进行多次尝试都不能复现这个问题。 
虽然问题导致的原因至今没有找到。但google工作成果也不是一点没有。Stackoverflow上有人提到了一个问题,也许跟本文不无关联:

“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

时间: 2024-08-09 03:23:24

placeholder 解决UITextField中placeholder和text文本同时显示的问题的相关文章

解决HTML5中placeholder属性兼容性的JQuery插件

//调用方法 $(function () {   $(".pHolder").jason(); }); //HTML代码 <input type="text" class="pHolder" placeholder="请输入姓名" /> //jquery插件 ($.fn.jason = function(a) {    var b = {        focus: "black",      

解决IE中placeholder的兼容问题

定义和用法 placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 <input> 类型:text, search, url, telephone, email 以及 password. 问题: 由于placeholder 属性是 HTML5 中的新属性,所以IE10以下不支持该属性,有问题就会有解决办法,我的方法就是,利用label和input组合,去模拟实现pla

解决Android中RadioButton图片和文本居中及底部经常被工具烂覆盖掉内容

1.图片和文本居中,只需要如下设置即可 <RadioButton android:id="@+id/myid" style="@style/tab_bottom" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:background=&qu

ie中placeholder属性不支持,js解决

ie中placeholder属性不支持,js的解决方法: //placeholder属性在ie下兼容 function placeholder ( pEle , con ) { var pEle = pEle if( pEle.find("input,textarea").val() == "" ){ pEle.append("<i class='placeholder_ie'>"+con+"</i>"

placeholder在IE8中兼容性问题解决

placeholder是HTML5中的一个属性,可以在文本框中设置placeholder属性来显示一些提示性的文字,但对IE10以下的浏览器不支持,下面方法可以让placeholder能够使用在IE10以下的版本中. 第一种方法是在页面中添加下面一段脚本: <script type="text/javascript"> if( !('placeholder' in document.createElement('input')) ){ $('input[placeholde

[BS-19]更改UITextField的placeholder文字颜色的5种方法

更改UITextField的placeholder文字颜色的5种方法 想要达到的目标是:一个页面上有多个UITextField,当用户聚焦某textField时,该文本框的placeholder的文字会灰色变为白色,当文本框失去焦点时,placeholder颜色从白色再变回灰色. 1.放置UILabel 最简单最笨的方法是在每个textField里放一个UILabel来充当placeholder,当该textField聚焦时,让placeholder的文字会灰色变为白色,失焦后从白色再变回灰色.

UITextView模拟UITextField 设置Placeholder属性 --董鑫

由于最近有用到输入框,刚开始考虑的是UITextField,因为它在没有输入的时候可以有提示的Placeholder更能,很人性化,但UITextField只能单行输入,不能跳行,对于一些强迫症的亲来说,很别捏!所以我就想用UITextView,并找出Placeholder的类似方法.我的思路是使用2个UITextView来模拟出UITextField的PlaceHolder效果,一个背景为透明的TextView放在最上面,另一个责作为PlaceHolder的TextView放在最底层.它们之间

iOS利用storyboard修改UITextField的placeholder文字颜色

最近有个需求需要修改UITextField的placeholder文字颜色,在网上找发现有用代码修改的,但是考虑到更加优雅的实现,所以尝试着在storyboard中直接实现,结果竟然真的成功了(原谅我太小白),实现的位置如下: 具体步骤: 1.在User Defined Runtime Attributes中添加一个Key. 2.输入Key Path(这里我们输入_placeholderLabel.textColor). 3.选择Type,有很多种(这里我们选择Color) 4.设置Value(

jquery选中将select下拉框中一项后赋值给text文本框

jquery选中将select下拉框中一项后赋值给text文本框,出现无法将第一个下拉框的value赋值给文本框 因为select默认选中第一项..在选择第一项时,便导致无法激发onchange事件.所以无法进行赋值给文本框 解决方法. select下拉框设置第一项做一个无用的占位option <script type="text/javascript">     function changeSelect(obj) {         var _this = obj;