代码之家  ›  专栏  ›  技术社区  ›  Rob

无法从NSTextField成功注册撤消

  •  2
  • Rob  · 技术社区  · 15 年前

    我有一个简单的基于文档的应用程序,它只创建一个自定义XML文件。它使用大纲视图来导航XML文档。选择大纲视图中的项目时,自定义视图将显示为允许用户输入数据的文档视图的子视图。其中一个视图上有一个NSTextField。它设置了“允许撤消”标志。我进行了测试,以确保在编辑完成时对NSDocument调用undoManager。因此,控制似乎是反弹通过第一反应,因为它应该。

    在iAction中,我使用ActionName,这样它就可以在菜单中正确显示。现在问题来了。不仅ActionName没有显示在菜单中,而且单击undo不会反转对NSTextField执行的操作,而是在它之前注册的操作。在使用NSTextField设置undo时,我是否忽略了什么?

    (iAction)textFieldChanged:(id)发件人{

    …这里有些代码。。。

    }

    抢劫

    1 回复  |  直到 15 年前
        1
  •  1
  •   Joshua Nozzi    15 年前

    文本字段是否与大纲视图(即文档的主窗口)位于同一窗口中?否则,您需要为该额外窗口设置一个委托,并对 -windowWillReturnUndoManager: 返回文档的撤消管理器。

    因为你是说-undoManager是针对你的文档被调用的,我猜上面的情况不是这样的。我从来没有听说过一个文本字段在文档的主窗口中并且选中“允许撤消”时不使用文档的撤消管理器。您是否尝试过删除字段并重新创建它这样简单的操作?有时候我会做一些奇怪的事情。。。有趣的是,当撤销/重做界面生成器本身的更改时,这些问题往往会突然出现。:-)

    推荐文章