在UITextField中将文本的一部分设为粗体

时间:2017-04-10 09:52:24

标签: ios swift

根据答案here我制作了这段代码:

extension NSMutableAttributedString {
    func bold(text:String, size:CGFloat) -> NSMutableAttributedString {
        let attrs:[String:AnyObject] = [NSFontAttributeName : UIFont.boldSystemFontOfSize(size)]
        let boldString = NSMutableAttributedString(string:"\(text)", attributes:attrs)
        self.appendAttributedString(boldString)
        return self
    }

    func normal(text:String)->NSMutableAttributedString {
        let normal =  NSAttributedString(string: text)
        self.appendAttributedString(normal)
        return self
    }
}

我这样用它:

@IBOutlet weak var m_field: UITextField!
 override func viewDidLoad() {
    super.viewDidLoad()
    let string = NSMutableAttributedString()
    string.bold("Bold_text: ",size: 12).normal("normal text")
    m_field.attributedText = string
}

但它不起作用,我的所有文字都是一样的(我认为粗体) 我做错了什么?

2 个答案:

答案 0 :(得分:2)

享受 - 以下代码适用于swift 3

        let normalText = "Hi am normal"

        let boldText  = "And I am BOLD!"

        let attributedString = NSMutableAttributedString(string:normalText)

        let attrs = [NSFontAttributeName : UIFont.boldSystemFont(ofSize: 15)]
        let boldString = NSMutableAttributedString(string:boldText, attributes:attrs)

        attributedString.append(boldString)

        txt.attributedText = attributedString

其中txt是TextField outlet

答案 1 :(得分:0)

 assign "**string**" variable value to **attributedText** property

    var m_field = UITextField()
    m_field.frame = CGRect(x: 0, y: 66, width: 400, height: 100)
    let string = NSMutableAttributedString()
    string.bold("Bold_text: ",size: 15).normal("normal text")
    m_field.attributedText = string
    self.view .addSubview(m_field)

enter image description here

相关问题