将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?

Posted

技术标签:

【中文标题】将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?【英文标题】:Add Placeholder to UITextField, how to set the placeholder text programmatically in swift? 【发布时间】:2016-08-27 23:32:03 【问题描述】:

我正在从数据库中提取一个电话号码,当用户开始在文本字段中编辑以更改该电话号码时,我想使用我目前在数据库中拥有的号码作为占位符。由于此信息随每个用户而变化,我如何在 swift 中以编程方式对其进行设置?

【问题讨论】:

【参考方案1】:

您需要先从数据库中获取电话号码(将它们转换为字符串),然后将textFieldplaceholder 设置为该字符串,如下所示

 textField.placeholder = phoneNumberString

【讨论】:

【参考方案2】:

斯威夫特 3

如果你的textField有文本,你需要先设置text属性为nil,然后设置占位符文本:

textField.text = nil
textField.placeholder = "My Placeholder Text"

【讨论】:

【参考方案3】:

对于阅读本文的其他人来说,重要的是要注意,在 main.storyboard 中设置占位符文本似乎会使此解决方案无效,因此在实施此之前,我必须先清除情节提要中的占位符。一旦完成@Khuong 和@Himanshu 的回答就完美了。

【讨论】:

【参考方案4】:

将这行代码应用到 View Did Load

new_Password.attributedPlaceholder =
            NSAttributedString(string: " New Password", attributes: [NSForegroundColorAttributeName : UIColor.white]) // new_Password : our text feild name

【讨论】:

这对我有用,很奇怪,将 placeHolder 设置为空字符串fieled?.attributedPlaceholder = NSAttributedString()【参考方案5】:

从您的数据库(核心数据)中获取您想要的数据,并将其转换为字符串格式后...比如 phoneString

使用此行将此字符串设置为占位符文本

phoneTextField.placeholder = phoneString

【讨论】:

【参考方案6】:

Objective-C 代码:

[usernameText setPlaceholder:@"My Placeholder Text"];

【讨论】:

【参考方案7】:

请注意,如果您以编程方式更改了文本字段的文本和背景颜色,则无法使用占位符文本的颜色进行更改,而必须设置一个属性占位符。如果您的设备处于“暗模式”并尝试手动制作非暗模式屏幕,则会出现问题 - 您可能看不到占位符!

【讨论】:

以上是关于将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用swift 2.0更改UITextfield占位符颜色和fontsize?

如何在 UITextField 占位符字符之间添加空格?

UITextField 占位符颜色

RTL iOS9上奇怪的UITextField占位符行为

如何实现占位符文本在 UITextField 中逐个字符消失

UITextField 占位符对齐滚动问题