向 UITextField 添加占位符,如何在 swift 中以编程方式设置占位符文本?

Add Placeholder to UITextField, how to set the placeholder text programmatically in swift?

我正在从数据库中提取一个 phone 号码,当用户开始在文本字段中编辑以更改该 phone 号码时,我想使用我当前使用的号码在数据库中作为占位符。由于此信息随每个用户而变化,我如何在 swift?

中以编程方式设置它

您需要先从数据库中获取 phone 数字(将它们转换为字符串),然后将 textFieldplaceholder 设置为该字符串,就像这样

 textField.placeholder = phoneNumberString

从数据库中获取所需数据(核心数据),然后将其转换为字符串格式...比如 phoneString

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

phoneTextField.placeholder = phoneString

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

Swift 3

如果你的textField有文字,你需要先设置text 属性为nil,然后设置placeholder text:

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

将这行代码应用到View Did Load

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

Objective-C代码:

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

请注意,如果您以编程方式更改了文本字段的文本和背景颜色,则不能使用占位符文本的颜色来执行此操作,而必须设置属性占位符。如果您的设备已安装 "dark mode" 并尝试手动制作非深色模式屏幕,则会出现问题 - 您可能看不到占位符!