Swift - 占位符长文本 - 切中间

Posted

技术标签:

【中文标题】Swift - 占位符长文本 - 切中间【英文标题】:Swift - Placeholder long text - cut the middle 【发布时间】:2015-03-31 00:18:49 【问题描述】:

我有 UITextField 和这样的长占位符: “QWERTYUIOPASDFGHJKLZXCVBNM”,但我的文本字段很小,当我使用函数textField.adjustsFontSizeToFitWidth = true 时,我可以设置的minimumFontSize 是9,但我仍然无法将文本放入文本字​​段。我想剪掉文本的中间,我希望文本是“QWERTY...CVBNM”怎么做?

【问题讨论】:

通常在IB中可以将段落样式设置为Truncate Middle。 我的 textField 是程序化的 我在 OSX 上,但 NSTextField 内部有一个 TextFieldCell,其中有 setUpFieldEditorAttributes,您可以在其中修改段落样式。 UILabel 允许在中间截断,但我在 IB 中没有看到 UITextField 的这个选项。 这就是我问这个问题的原因:) 【参考方案1】:
func cutTheMiddleOfLongString(var string:String) -> String 
    if(countElements(string)>20)
        let begining = string[advance(string.startIndex, 0)..<advance(advance(string.startIndex, 0), 12)]
        let ending = string[advance(string.startIndex, countElements(string)-8)..<advance(advance(string.startIndex, countElements(string)-8), 8)]
        string = begining + "..." + ending
    
    return string

这将获取字符串的前 12 个字母和后 8 个字母,并将 ... 放在它们之间(开始结束)。

【讨论】:

以上是关于Swift - 占位符长文本 - 切中间的主要内容,如果未能解决你的问题,请参考以下文章

Swift 以编程方式设置文本字段的占位符

在 Swift 中的 UITextView 中添加占位符文本?

Swift iOS 8+ UISearchBar图标,占位符和文本居中

如何在swift中使用Google Material MDCOutlinedTextField从文本字段中删除占位符文本?

Swift:在 UITextView 中使用占位符文本禁用空白/换行符文本的栏按钮

Swift 字符串和可可绑定:不显示占位符字符串