覆盖UITextView撤消

时间:2014-06-05 00:16:13

标签: ios objective-c uitextview nsundomanager

我希望我的UITextView子类停止使用它的undo / redo方法,以便我的自定义撤消方法可以接管:

NSUndoManager registerUndoWithTarget:selector:object:

我还没有弄清楚如何将重做操作添加到堆栈中。 (尽管阅读Undo Architecture)也许有人可以指出我正确的方向?

1 个答案:

答案 0 :(得分:0)

我去重新阅读了documentation,解决方案变得明显了。我将解释这对那些像我一样挣扎的人是如何运作的。

在UITextView子类中实现自定义NSUndoManager:

 1.覆盖NSUndoManager属性&合成
@property (retain) NSUndoManager *undoManager;
 2.初始化NSUndoManager
self.undoManager = [[NSUndoManager alloc] init];
 3.在更改发生之前注册撤消操作
[self.undoManager registerUndoWithTarget:self selector:@selector(someHandleUndoMethod:) object:(somePre-ChangeObject)];

注意:自动处理重做操作。