gpt4 book ai didi

objective-c - NSUndoManager:禁用 "redo"进行破坏性操作

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

我想向我的 Mac 应用程序添加撤消/重做功能。该应用程序可与笔记一起使用,我想在用户删除笔记时添加“撤消”操作。

这工作得很好,“撤消删除注释”菜单在用户删除注释后变为事件状态,但是在使用“撤消删除注释”命令后,有一个“重做删除注释”菜单变为事件状态。

目前,当我单击“重做删除注释”时,没有任何反应,因为我没有注册操作。我不希望用户能够通过撤消/重做堆栈意外删除注释。

是否可以添加“撤消”操作而不添加“重做”操作?

最佳答案

一般情况下不会。这样做将违反平台标准撤消/重做机制的隐式契约。你希望你注册的东西是对称的。如果用户删除注释,则可用的撤消操作应该恢复该注释。如果用户选择撤消,则重做操作将是再次“删除注释”。如果用户通过撤消或重做“意外”删除了一条注释,那也没关系,因为他们应该始终能够通过执行相反的操作来恢复它,对吗?

别想太多。

关于objective-c - NSUndoManager:禁用 "redo"进行破坏性操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23786514/

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