Swift3 UITextField更改占位符字体类型和大小

时间:2017-01-30 15:22:56

标签: ios swift uitextfield nsattributedstring

代码:

txtField.attributedPlaceholder = NSAttributedString(string:strPlaceHolder, attributes:[NSForegroundColorAttributeName:UIColorFromRGB(color:PlaceHolderColor, alpha:1.0),NSFontAttributeName :UIFont(name: "Didot-Italic", size: 4)!])

我正在尝试更改UITextField占位符字体类型和字体大小。它不起作用。我的代码出了什么问题?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    txtField.attributedPlaceholder = NSAttributedString(string:"Place holder text in here", attributes:[NSForegroundColorAttributeName: UIColor(red: 153.0/255.5, green: 153.0/255.5, blue: 153.0/255.5, alpha: 0.5)])
}

占位符属性文本将与文本字段文本属性的大小和字体相同

答案 1 :(得分:0)

你应该改变文本字段的字体属性(即txtField.font),然后设置你的占位符文本(即txtField.placeholder)

答案 2 :(得分:0)

SWIFT 5 / XCode 11:

UITextField具有一个名为.attributedPlaceholder的属性,您可以使用NSAttributedString键来分配属性。要将“ searchBoxTextField”占位符自定义为: 浅灰色文字颜色和 Times New Roman字体大小为20

尝试复制/粘贴此文件,它应该可以工作...

    override func viewDidLoad() {
        super.viewDidLoad()

        searchBoxTextField.attributedPlaceholder = NSAttributedString(string:"Enter a Word" attributes:[NSAttributedString.Key.foregroundColor: UIColor.lightGray, NSAttributedString.Key.font :UIFont(name: "Times New Roman", size: 20)!])

    }

注意:您仍然可以使用“自动版式”选择来控制用户输入的文本外观。因此,在此示例中,占位符为灰色,但是如果您为textView文本颜色选择了黑色,则当用户在框中键入内容时,它将很好地过渡。

placeholder gray, small, Times New Roman

user-entered text white, bold, Futura