如何在 UITextField 中的文本上绘制边框

How to draw a border on the text within a UITextField

我希望能够在 Swift 中的 UITextField 内的文本周围绘制边框,这可行吗?如果可行,如何实现?

尝试使用 NSAttributedString,它可以让您自定义文本。我建议使用一个名为 Attributed String Creator 的有用程序,您可以在应用商店中找到它。这使您可以在编辑器中创建文本并复制和粘贴制作该文本所需的代码。

编辑:

如果您不想下载该程序,这里是我制作的一些黑色轮廓文本的片段:

    // Create the attributed string
var myString = NSMutableAttributedString(string:"Example Text")

// Declare the fonts
let myStringFont1 = UIFont(name:"Helvetica", size:14.0)

// Declare the paragraph styles
var myStringParaStyle1 = NSMutableParagraphStyle()
myStringParaStyle1.alignment = NSTextAlignment.Natural
myStringParaStyle1.tabStops = [NSTextTab(textAlignment: NSTextAlignment.Left, location: 28.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 56.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 84.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 112.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 140.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 168.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 196.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 224.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 252.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 280.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 308.000000, options: nil), NSTextTab(textAlignment: NSTextAlignment.Left, location: 336.000000, options: nil), ]


// Create the attributes and add them to the string
myString.addAttribute(NSFontAttributeName, value:myStringFont1!, range:NSMakeRange(0,12))
myString.addAttribute(NSStrokeWidthAttributeName, value:3, range:NSMakeRange(0,12))
myString.addAttribute(NSParagraphStyleAttributeName, value:myStringParaStyle1, range:NSMakeRange(0,12))

编辑 2:

将所有内容放入此文本字段委托函数中,并将使用的字符串更改为 textField.text:

func textFieldDidEndEditing(textField: UITextField) {
        //Put all that inside here
}