Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITextField占位符颜色_Ios_Swift_Uitextfield - Fatal编程技术网

Ios UITextField占位符颜色

Ios UITextField占位符颜色,ios,swift,uitextfield,Ios,Swift,Uitextfield,我完全意识到在这个问题上已经有多种答案了。我添加了运行时属性。我还添加了一个UITextField扩展。占位符颜色仍然拒绝在模拟器和设备上更改。我不是通过故事板设置占位符。正在通过从数据库检索数据来设置占位符文本。为什么我的占位符颜色不会改变 你有一些问题 您可以调用self.nameTextField.placeholder=username。这将清除您可能具有的任何属性占位符,并将其恢复为默认颜色。设置占位符后,您需要设置占位符颜色,以便查看颜色 您的placeholder color计算

我完全意识到在这个问题上已经有多种答案了。我添加了运行时属性。我还添加了一个UITextField扩展。占位符颜色仍然拒绝在模拟器和设备上更改。我不是通过故事板设置占位符。正在通过从数据库检索数据来设置占位符文本。为什么我的占位符颜色不会改变


你有一些问题

您可以调用
self.nameTextField.placeholder=username
。这将清除您可能具有的任何属性占位符,并将其恢复为默认颜色。设置
占位符
后,您需要设置
占位符颜色
,以便查看颜色


您的
placeholder color
计算属性的
get
将导致无限递归,因为它调用
self.placeholder color
,调用getter,getter调用
self.placeholder color
,getter在获取我添加的用户名后调用loadUserInfo中的getter…

self.nameTextField.attributedPlaceholder=NSAttributedString(字符串:user.name,属性:[NSAttributedStringKey.foregroundColor:UIColor.green])

因此,在设置占位符后,我必须在代码中设置每个文本字段,而不是通过扩展或界面生成器?或向
UITextField
扩展添加其他自定义属性(或函数),该扩展允许您设置占位符文本,同时保留已设置的任何颜色。然后将
self.nameTextField.placeholder=username
更改为
self.nameTextField.myPlaceholder=username
。这是对问题的回答还是问题的其他详细信息?请注意,这会使
placeholder color
属性毫无意义。是的,我删除了扩展和运行时属性因为这是毫无意义的
extension UITextField{
@IBInspectable var placeHolderColor: UIColor? {
    get {
        return self.placeHolderColor
    }
    set {
        self.attributedPlaceholder = NSAttributedString(string:self.placeholder != nil ? self.placeholder! : "", attributes:[kCTForegroundColorAttributeName as NSAttributedStringKey: newValue!])
    }
}
  }
            func loadUserInfo(){
        if let username = user.name{
            self.nameLabel.text = username
            self.nameTextField.placeholder = username
           print(username)
        }