【发布时间】:2014-07-10 07:00:29
【问题描述】:
我想在我的 Mac 应用程序中添加撤消/重做功能。该应用适用于笔记,我想在用户删除笔记时添加“撤消”操作。
这很好用,“撤消删除笔记”菜单在用户删除笔记后变为活动状态,但在使用“撤消删除笔记”命令后,“重做删除笔记”菜单变为活动状态。
当我点击“重做删除笔记”时,目前没有任何反应,因为我没有注册操作。我不希望用户能够通过撤消/重做堆栈意外删除笔记。
是否可以在不添加“重做”操作的情况下添加“撤消”操作?
【问题讨论】:
-
我不知道你是否可以,但我知道这是你真的不想做的事情。良好的应用程序设计中有一个概念称为宽恕。当有人删除某些东西,改变主意,然后发现他们没有能力撤消删除时,这不是很宽容。同时,您需要弄清楚为什么没有相应的 Undo 操作,并且您可以自定义 Undo 菜单项字符串以减少混乱。 “恢复笔记,”也许?
-
NSUndoManager 将维护撤消和重做堆栈。当您使用“重做删除”时,“撤消删除”将再次出现。所以不可逆的事故是没有问题的。
标签: objective-c cocoa nsundomanager