我正在为一款现有应用编写插件,需要捕获撤销和重做操作修改的文本和范围。我可以访问应用程序已创建的NSUndoManager和NSTextView,并且可以注册通知。是否有一种方法利用这些元素来获取被撤销/重做的文本组?
我没有这样做过,所以只能依靠文档/知识。
因为您可以访问textview,所以您可以成为textview代表。然后,您将收到有用的消息...
在文本更改之前:
文本更改后:
我不知道您是否会收到这些更改(UndoManager是否绕过此类内容?),但您可能会。无论如何,在处理前面的消息时,您都可以查询选择设置。
在选择更改之前:
之后:
UndoManager应该告诉您它正在执行撤消的过程,这意味着您可以区分普通更改和基于撤消的更改。
这似乎足够了解,希望能对您有所帮助。