我正在尝试为我的
UITextView
实现撤销和重做功能。我正在使用attributedText
而不是UITextView
的text
属性。我已经尝试使用undoManager
中引用的函数调用,如Apple文档所述,但似乎没有任何反应。我很惊讶我在Google上找不到有关这个主题的任何信息。有没有人遇到过这个问题或者在UITextView
上实现attributedText
的撤销和重做功能,或者知道如何解决这个问题?
示例代码:
textView.attributedText = NSMutableAttributedString(string: "SOME TEXT")
@objc func undo(_ sender: UIButton) {
textView.undoManager?.undo()
}
@objc func redo(_ sender: UIButton) {
textView.undoManager?.redo()
}
@IBAction
。 - Anters Bear[Int:String]
来跟踪内容,使用[Int:NSRange]
来跟踪所选范围,并使用一个简单的计数器来跟踪撤销/重做索引,从头开始实现了自己的撤销/重做版本。效果还不错! - Anters Bear