如何在 20 个字符后切断文本视图?

Posted

技术标签:

【中文标题】如何在 20 个字符后切断文本视图?【英文标题】:How do I cut off the text view after 20 characters? 【发布时间】:2016-06-06 19:16:00 【问题描述】:

我试图将文本视图中的字符数限制为 20。在 20 之后它应该有“...”。该函数未触发,我正在正确设置委托。

动物类

cell.pn.text = np[indexPath.row]
cell.pn.selectable = false
cell.pn.delegate = self

Animal类的扩展

extension Animal : UITextViewDelegate
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool 
    return textView.text.characters.count + (text.characters.count - range.length) <= 20
    

【问题讨论】:

尝试将 本来我想要75,但是忘记改了,当我断点的时候什么也没发生。 【参考方案1】:

试试这个:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool 
        let text = textField.text
        let newLength = text.characters.count + string.characters.count - range.length
        return newLength <= 20
    

【讨论】:

不起作用,1)当我在函数上断点时没有任何反应,2)我使用的是文本视图而不是文本字段【参考方案2】:

你可以这样使用:

            if displayName.characters.count > 20 
                displayName = (displayName as NSString).substringToIndex(20)
                displayName.appendContentsOf("...")
            

【讨论】:

以上是关于如何在 20 个字符后切断文本视图?的主要内容,如果未能解决你的问题,请参考以下文章

斜体字符在文本框中的底部被切断

在 UILabel 和 UITextField 中切断第一个而不是最后一个字母?

扫描仪在大约 2400 个字符后切断我的字符串

文本视图在 CardView 中被切断?

如何使用自动滚动制作水平滚动文本视图?

Verizon 电子邮件到文本被提前切断