如何在swift中设置NSTextField中的最大字符串长度?

时间:2017-06-24 04:49:13

标签: swift3

我喜欢设置NSTextField中显示的文本的最大长度,以便截断长文本并以两个点(..)结束。

问题是不同语言的长度不同,即使它们的字符数相同 例如,让myTitle1 =" Lake" // 4英文字符
     让myTitle2 ="我的标题" // 4个汉字
     让myTitle3 ="一个美丽的湖泊" // 16个英文字符

我喜欢上面三个标题显示在NSTestField中具有相似(如果不完全相同)的长度,如下所示: "湖"
"我的.."
" A be .."

有没有办法做到这一点?

感谢

2 个答案:

答案 0 :(得分:0)

这有点晚了,但对于任何寻求应答者的人而言。您不应该手动截断文本,让操作系统为您完成。

根据需要在情节提要中对齐文本字段,并设置换行符以截断尾巴。

还应将文本字段的压缩阻力设置为较低的值,否则文本字段的边框将被压入而不是被截断的文本。

答案 1 :(得分:-1)

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    guard let text = textField.text else { return true }
    let newLength = text.characters.count + string.characters.count - range.length
     if(textField == myTitle1){
        return newLength <= 4
     }else if(textField == myTitle2){
       return newLength <= 4
     }else{
       return newLength <= 16
   }
    return true // Bool
}