gpt4 book ai didi

cocoa - 如何在将状态推送到 NSUndoManager 后立即强制 NSDocument isDocumentEdited YES

转载 作者:行者123 更新时间:2023-12-03 17:03:15 25 4
gpt4 key购买 nike

我将 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];

但我不知道与撤消管理器交互是否安全。

最佳答案

NSUndoManager 自动对撤消事件进行分组,直到当前事件结束,此时它会关闭当前组并对其进行处理。

我不确定您将如何解决这个问题,因为我不确定您为什么希望 isDocumentEdited 立即更改。

关于cocoa - 如何在将状态推送到 NSUndoManager 后立即强制 NSDocument isDocumentEdited YES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21430409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com