代码之家  ›  专栏  ›  技术社区  ›  Colin Barrett

NSUndoManager和启用/禁用撤消按钮

  •  7
  • Colin Barrett  · 技术社区  · 14 年前

    在我的iOS应用程序的界面中,我有显式的undo&redo按钮(shake to undo是一个相当重的操作,在这种情况下,undo的执行非常频繁)。通常,我会使用KVO观察NSUndoManager的canUndo和canRedo键路径,并在收到通知时启用和禁用按钮。不幸的是,对于那些关键路径,NSUndoManager似乎不符合KVO——或者至少,我没有看到任何通知方面的内容。

    所以我的问题是:我怎样才能让它工作?我只是做错了KVO吗?(我已经检查了两次和三次,但总有这种可能性)。有没有其他我没想到的方法?(我已经考虑过在每次运行循环旋转时检查-canUndo的值,但这对我来说有点不好的代码味道)。

    (请注意,在iOS和Mac OS X上,NSUndoManager很有可能是不同的,所以我不认为“它在Mac上工作”是一个有用的答案,在这种情况下)

    1 回复  |  直到 14 年前
        1
  •  13
  •   Jonathan.    7 年前

    推荐文章