粘贴后 UITextView contentSize 未更新 swift iOS

UITextView contentSize is not update after paste swift iOS

当我粘贴一些文本时,contentSize 的 textview 高度不正确。它 returns 粘贴前的文字高度。

例如,

我期望高度值:[contentSize Height] 1019(粘贴后) 但实际值:[contentSize Height] 540(粘贴前)

我尝试了 setNeedDisplay() 方法,但它不起作用。

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool
{
    print("[contentSize] \(textView.contentSize.height) size to fit \(textView.sizeThatFits(view.frame.size).height)")

}

调用 textView(_:shouldChangeTextIn:replacementText:) 时,文本尚未应用于视图,这意味着 contentSize 尚未更改。如果可能,您可以使用 textViewDidChange(_:),它应该打印正确的尺寸。

func textViewDidChange(_ textView: UITextView) {
    print("[contentSize] \(textView.contentSize.height) size to fit \(textView.sizeThatFits(view.frame.size).height)")
}

如果您确实需要在 shouldChangeTextIn 方法上计算文本的大小,您可以尝试使用 .

等方法计算大小