将字符串粘贴到 uitextview 中的文本底部时会添加额外的空间

Posted

技术标签:

【中文标题】将字符串粘贴到 uitextview 中的文本底部时会添加额外的空间【英文标题】:Extra space is added at the bottom of text in uitextview when string is pasted into it 【发布时间】:2018-06-19 06:20:10 【问题描述】:

当我在UITextView 中粘贴文本时,会添加一些额外的空间。但是当我滚动它时,textView 会根据内容安装。在textViewDidChange 中,textView 高度约束是根据其内容大小设置的。有人遇到同样的问题吗?

func textViewDidChange(_ textView: UITextView) 
    let newSize = textView.sizeThatFits(CGSize.init(width: textView.frame.size.width, height: CGFloat(MAXFLOAT)))
    textView.isScrollEnabled = false
    if newSize.height < 37 
        self.messageTextViewHeightConstraint.constant = minimumTextviewHeight
    
    if (newSize.height >= 37 && newSize.height <= 100) 
        self.messageTextViewHeightConstraint.constant = newSize.height
    
    if (newSize.height >= 100) 
        self.messageTextViewHeightConstraint.constant = maximumTextviewHeight
        self.textView.isScrollEnabled = true
    

【问题讨论】:

@s-v :当禁用滚动时,TextView 从内容集中获取固有大小,如果您手动设置高度约束,您可能会影响 textView 的内容大小。所以向我们展示你设置约束的代码 请检查我更新的问题 【参考方案1】:

您必须将 textView 的 smartInsertDeleteType 设置为 .no

textView.smartInsertDeleteType = .no

参考链接:https://developer.apple.com/documentation/uikit/uitextinputtraits/2865828-smartinsertdeletetype

【讨论】:

以上是关于将字符串粘贴到 uitextview 中的文本底部时会添加额外的空间的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义 UITextView 单元格的 TableView 将导航栏滚动到屏幕外

UITextView 底部有更多文字和更多空白

如何不为“复制/粘贴”UITextView 选择文本

粘贴长文本时UITextView动态高度滚动不起作用

UITextView从文本的底部或中间开始

UITextView高度调整