9

我正在尝试将撤消/重做功能集成到 UITextView(我正在构建一个 LateX 编辑器)中,但没有运气,老实说,我对这个论点感到非常困惑。我不明白这两个操作涉及的步骤,我的意思是我需要两个方法

  • 一个删除最后插入的文本
  • 一个恢复被删除的文本

一个疑问是我在哪里得到最后插入的文本?换句话说,我必须在哪里注册撤消?

  • 在 textViewDidChange 我可以得到整个文本
  • 在 textViewShouldChangeTextInRange 我可以插入最后一个字符

我知道我写的不是最好的解释,但我希望这里有人过去也遇到过同样的问题,可以给我一个提示。基本上,要恢复,我必须将撤消/重做功能添加到文本视图,可能有两个按钮与这些操作相关联。

提前致谢

4

1 回答 1

23

我现在感觉自己像个白痴 :( 解决方案真的很简单... textView 已经有一个 undoManager 所以基本上对 textView 进行撤消/重做操作的步骤是:在 viewDidload 内部:

myUndoManager = [textView undoManager];

您要执行操作的位置

[myUndoManager undo]; // or redo

有时我真的很笨,我几乎正在编写自己的撤消代码......我希望这可以帮助某人

于 2011-02-25T07:59:30.740 回答