【发布时间】:2010-03-21 17:07:37
【问题描述】:
我有一个文本视图,它从存储在模型对象中的属性字符串中获取其内容。我在抽屉中列出了其中几个模型对象,当用户单击其中一个时,文本视图会交换其内容。
我现在还需要将撤消管理器换成文本视图。我在我的模型对象上初始化了一个撤消管理器并使用 undoManagerForTextView 将其返回到文本视图,但有些地方不太正确。
策略性地放置日志语句告诉我一切都按计划进行:在启动时,一个新的模型对象被正确初始化,并且文本视图总是拉出一个非空的撤消管理器。但是在实际执行撤消操作时,我无法获得我想要的行为。
我打开一个窗口,输入一些内容并按 cmd+z,然后撤消操作。 我打开一个窗口,输入一些东西,在桌子上选择一个新模型,输入一些东西,回到第一个模型并尝试撤消,我得到的只是一声哔哔声。
文档中的Something 让我挑了挑眉,因为这意味着我无法对多个模型对象进行撤消:
默认的撤消和重做行为 适用于文本字段和文本 单元格,只要字段或单元格是 第一响应者(即 键盘动作的焦点)。一旦 插入点离开字段或 单元格,先前的操作不能 撤消。
【问题讨论】:
标签: cocoa nstextview nsattributedstring nsundomanager