我正在将NSDocument与其NSUndoManager结合使用。 我注意到在将可撤销操作推送到UndoManager时设置NSDocument updateChangeCount有一个延迟:
[undoManager registerUndoWithTarget:self selector:@selector(applyUndoState:) object:state];
NSLog(@"Document.isEdited: %d", [self isDocumentEdited]);
如果在此调用之前未修改文档,则显示“0”。 似乎undomanager稍后在此方法退出后调用updateChangeCount。 有没有办法强制undomanager更新文档updateChangeCount? 我可以手动拨打
if (![self isDocumentEdited])
[self updateChangeCount:NSChangeDone];
但我不知道在与undomanager的互动中是否安全。
答案 0 :(得分:2)
NSUndoManager将事件自动撤消,直到当前事件结束,然后关闭当前组并对其进行处理。
我不确定你会如何解决这个问题,因为我不确定你为什么要立即改变isDocumentEdited
。