我正在尝试将撤消/重做功能集成到 UITextView(我正在构建一个 LateX 编辑器)中,但没有成功,老实说,我对这个论点真的很困惑。我不明白这两个操作涉及的步骤,我的意思是我需要两种方法
- 删除最后插入的文本
- 一个恢复删除的文本
一个疑问是我从哪里得到最后插入的文本?换句话说,我必须在哪里注册撤消?
- 在 textViewDidChange 中我可以获得整个文本
- 在 textViewShouldChangeTextInRange 中,我可以插入最后一个字符
我知道我写的不是最好的解释,但我希望这里的人过去遇到过同样的问题并能给我提示。基本上,要恢复,我必须将撤消/重做功能添加到 TextView ,可能有两个按钮与这些操作相关联。
提前致谢
最佳答案
我现在感觉自己像个白痴 :( 解决方案真的非常简单...... textView 已经有一个 undoManager 所以基本上对 textView 进行撤消/重做操作的步骤是: 在 viewDidload 里面:
myUndoManager = [textView undoManager];
你想在哪里执行操作
[myUndoManager undo]; // or redo
有时候我真的很笨,我几乎在写自己的撤消代码......我希望这可以帮助别人
关于iOS - UITextView + NSUndoManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5079490/