2015-01-01 78 views
1

NSUndoManager將調用組合在一起發生在同一個runloop中。在文檔加載時禁用NSUndoManager對文檔加載的調用

我想加載一個文檔,其中包含撤消歷史。

因此,我創建了一個文檔並逐個應用調用,但是這些調用都非常快速地添加,導致一次性撤消。

有沒有辦法可以改變NSUndoManagers的runloop或其他東西,這樣我可以得到單獨的撤消調用?

我曾嘗試禁用groupsByEvent和創造我自己的beginUndoGrouping但它似乎沒有工作

+0

看來,我需要包裝一個beginUndoGrouping()和endUndoGrouping()周圍的所有我的「添加」操作的,我不知道如果我覺得這是正確的行爲,雖然。我的想法是,一個頂級的beginUndoGrouping應該會影響所有後續的「添加」到撤銷管理器... – Chris

回答

0

您是否嘗試過重新關上頂層組,打開它你將你的調用後?例如: -

undoManager.endUndoGrouping() 

// add your undo invocations 

undoManager.beginUndoGrouping() 
+0

沒有頂級的組合關閉,所以我只是碰到這種方法 – Chris