2014-06-05 74 views
0

我想我的UITextView的子类停止使用它的撤销/重做方法,让自己的自定义撤消方法可以接管:覆盖的UITextView撤消

NSUndoManager registerUndoWithTarget:selector:object: 

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

+0

我想一个解决方案是使用加速度计,自定义撤销/重做堆栈等来实现我自己的撤销管理器......但这看起来并不像要走的路 – user3709183

回答

0

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

要实现自定义NSUndoManager在一个UITextView亚类:

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

注:重做动作均自动照顾。