粘贴后 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
方法上计算文本的大小,您可以尝试使用 .
等方法计算大小
当我粘贴一些文本时,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
方法上计算文本的大小,您可以尝试使用