UITextField - 移除文字溢出的椭圆符号。

问题描述 投票:1回答:2

我有一个UItextfieldthat持有一个人的中间名。 我只想让它显示首字母,它确实是这样做的,但我想让它显示整个名字。 它的大小只够显示一个首字母,但它在字母后面添加了省略号(...).是否可以在uitextfield溢出时删除这些? 我在网上没有找到任何关于有人有同样问题的资料。

谢谢你的帮助

ios xcode uitextfield
2个回答
0
投票

A UITextField 不应该截断文本(因为你通常可以滚动选择那个UI元素)。

A UILabel 默认情况下会截断,您可以将其设置为剪切。


0
投票

当文本字段辞去第一响应者时,我确实看到了这种截断。我通过设置 lineBreakMode 中的NSParagraphStyle属性改为 .byClipping. 我碰巧使用了UITextField的一个子类,所以我覆盖了 resignFirstResponder() 来做这件事。我的textField开始时是空的,所以在viewDidLoad中没有属性字符串开始。

override func resignFirstResponder() -> Bool {
    guard let newAttributedText = (attributedText?.mutableCopy() as? NSMutableAttributedString) else {
        return super.resignFirstResponder()
    }
    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.lineBreakMode = .byClipping
    newAttributedText.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: NSRange(location: 0, length: attributedText?.length ?? 0))
    attributedText = newAttributedText
    return super.resignFirstResponder()
}

如果你在代码中设置了文本,这可能就不灵了。在这种情况下,你可能会想在文本字段中设置 lineBreak 模式的一个普通函数中,你可以同时从 resignFirstResponder() 并在代码中设置文字后。你可以做一个 set(text: String?) 函数,并从那里调用普通函数。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.