我希望我的UITextView子类停止使用它的undo / redo方法,以便我的自定义撤消方法可以接管:
NSUndoManager registerUndoWithTarget:selector:object:
我还没有弄清楚如何将重做操作添加到堆栈中。 (尽管阅读Undo Architecture)也许有人可以指出我正确的方向?
答案 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)];
注意:自动处理重做操作。