objective-c – 在NSTextView中捕获撤消和重做编辑文本组

objective-c – 在NSTextView中捕获撤消和重做编辑文本组,第1张

概述我正在为现有应用编写插件,我需要捕获撤消和重做 *** 作影响的修改后的文本和范围.我能够访问应用程序创建的NSUndoManager和NSTextView,并且我能够注册通知.有没有办法利用这些元素来获取撤消/重做的文本组? 我没有这样做,所以我只是通过文档/知识. 因为您可以访问textview,所以您可以成为textview委托.然后,您将收到有用的消息…… 在文本更改之前: > textView 我正在为现有应用编写插件,我需要捕获受撤消和重做 *** 作影响的修改后的文本和范围.我能够访问应用程序创建的NSUndoManager和NSTextVIEw,并且我能够注册通知.有没有办法利用这些元素来获取撤消/重做的文本组?解决方法 我没有这样做,所以我只是通过文档/知识.

因为您可以访问textvIEw,所以您可以成为textvIEw委托.然后,您将收到有用的消息……

在文本更改之前:

> textVIEw:shouldChangeTextInRange:replacementString:
> textVIEw:shouldChangeTextInRanges:replacementStrings:
> textVIEw:shouldChangeTyPingAttributes:toAttributes:

文字更改后:

> textVIEwDIDChangeTyPingAttributes:

我不知道你是否会收到这些更改(UndoManager是否会绕过这些内容?),但你可以.无论如何,您可以在处理以前的消息时查询选择设置.

在选择更改之前:

> textVIEw:willChangeSelectionFromCharacterRange:tocharacterRange:
> textVIEw:willChangeSelectionFromCharacterRanges:tocharacterRanges:

后:

> textVIEwDIDChangeSelection:

UndoManager应该告诉您它正在执行撤消,这意味着您可以区分普通更改和基于撤消的更改.

这似乎已经足够了,我希望它有所帮助.

总结

以上是内存溢出为你收集整理的objective-c – 在NSTextView中捕获撤消和重做编辑文本组全部内容,希望文章能够帮你解决objective-c – 在NSTextView中捕获撤消和重做编辑文本组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存