我對NSUndoManager方法我應該使用模型對象作爲NSUndoManager的目標嗎?
registerUndoWithTarget:selector:object:
prepareWithInvocationTarget:
通常在實例的問題, 「目標」 是管理所有的模型對象控制器對象(通常在一個數組中)。
但是,目標可以是單個模型對象 - 要通過撤銷/重做操作更改模型對象嗎?
的guide說,大約registerUndoWithTarget:selector:object:
:
目標對象可以不是實際的對象,其狀態正在改變;相反,它可能是客戶端對象,一個包含許多可撤銷對象的文檔或容器。
爲什麼這個限制?它在方法本身的文檔中沒有提及。另外,對於prepareWithInvocationTarget:
方法沒有提及這樣的限制。
如果您刪除一個對象並將其用作目標 - 如果目標現在消失,撤消工作怎麼辦?您將需要一些其他實例來編排操作**以獲取**實際更改的對象 – cacau