2012-10-16 43 views
1

我有一個應用程序,允許用戶上下移動UIViews,使外觀一個視圖可以在另一個視圖之上。通過使用exchangeSubviewAtIndex方法更改超級視圖中UIView的索引,更改UIView的「級別」(索引在父級子視圖中)非常簡單。顯式設置NSUndoManager的重做調用

  /---------/ 
IDX 1 / A /
     /---------/ 
     /---------/ 
IDX 0 / B /
     /---------/ 


Move 'A' Down 


     /---------/ 
IDX 1 / B /
     /---------/ 
     /---------/ 
IDX 0 / A /
     /---------/ 

現在,我使用NSUndoManager記錄更改,以便用戶可以撤消向下移動操作。這工作正常。嘗試在NSUndoManager上執行重做消息時會出現此問題。由於在被移動的UIView中沒有「ZIndex」的狀態(因爲它是父視圖中的一個位置),所以重做不會執行任何操作....

是否有明確傳入的方法重做的重做調用?

回答

1

好吧,我的問題是對撤銷管理器的重做部分的誤解。事實證明,撤銷管理器的重做是另一次撤銷,它只知道它在撤消過程中,並將調用添加到重做堆棧中。

這篇文章是我的關鍵: NSUndoManager: redo not working

相關問題