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 中的 UITextView 中添加占位符文本?
Swift iOS 8+ UISearchBar图标,占位符和文本居中
如何在swift中使用Google Material MDCOutlinedTextField从文本字段中删除占位符文本?