2014-06-05 40 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)]; 

注:重做動作均自動照顧。