【发布时间】:2012-06-12 23:55:58
【问题描述】:
我正在为现有应用程序编写插件,我需要捕获受撤消和重做操作影响的修改文本和范围。我可以访问应用程序创建的 NSUndoManager 和 NSTextView,并且可以注册通知。有没有办法利用这些元素来抓取已撤消/重做的文本组?
【问题讨论】:
标签: objective-c cocoa nstextview nsundomanager
我正在为现有应用程序编写插件,我需要捕获受撤消和重做操作影响的修改文本和范围。我可以访问应用程序创建的 NSUndoManager 和 NSTextView,并且可以注册通知。有没有办法利用这些元素来抓取已撤消/重做的文本组?
【问题讨论】:
标签: objective-c cocoa nstextview nsundomanager
我没有这样做,所以我只是通过文档/知识。
因为您可以访问 textview,所以您可以成为 textview 代表。然后您会收到有用的消息...
文字改变前:
文字变化后:
我不知道您是否会收到这些更改(UndoManager 会绕过这些内容吗?),但您可能会收到。在任何情况下,您都可以在处理之前的消息时查询选择设置。
选择更改之前:
之后:
UndoManager 应该告诉您它正在执行 Undo,这意味着您可以区分普通更改和基于 undo 的更改。
这似乎足以继续,我希望它有所帮助。
【讨论】: