首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSUndoManager:禁用“重做”以执行破坏性操作

NSUndoManager:禁用“重做”以执行破坏性操作
EN

Stack Overflow用户
提问于 2014-05-21 14:41:53
回答 1查看 351关注 0票数 1

我想在我的Mac应用程序中添加撤销/重做功能。该应用程序适用于便笺,当用户删除便条时,我想添加一个“撤销”操作。

这很好,“撤消删除笔记”菜单在用户删除便条后变为活动,但是在使用“撤消删除注释”命令后,就会有一个"Redo Delete Note“菜单成为活动的。

当前,当我单击"Redo Delete Note“时没有发生任何事情,因为我没有注册一个操作。我不希望用户能够在撤销/重做堆栈中意外删除便条。

是否可以在没有“重做”操作的情况下添加“撤消”操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 11:32:49

一般情况下不是这样。这样做将违反平台标准撤销/重做机制的隐式契约。你希望你注册的东西是对称的。如果用户删除便笺,则可用的撤消操作将使便笺返回。如果用户选择撤消,则重做操作将再次“删除备注”。如果用户通过撤销或重做“意外”删除一个注释,这不应该重要,因为他们应该总是能够通过执行逆操作来获得它,对吗?

别想太多了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23786514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档