我正在为个人项目编写一个非常简单的文本编辑器组件。它支持粗体,斜体,下划线,右边,中心,左边和填充对齐...到目前为止,上帝。使用TextControl.Buffer.ApplyTag( tag, start, end )
,按一下按钮,所选文本部分变为粗体或其他。如果再次按下该按钮,粗体格式应该会消失。
问题是检测标签然后将其删除,因此格式消失。我知道我可以使用TextControl.Buffer.RemoveAllTags( start, end );
删除所有代码,this.TextControl.Buffer.RemoveTag( tag, start, end );
可以删除特定代码。但我正在寻找一个功能,如:
TextTag[] GetTags(TextIter start, TextIter end);
...所以我可以检测哪些标签已应用于特定选择,但我没有在Gtk.TextView的文档中找到该功能,也没有在其他任何地方找到该功能。有人知道吗?
答案 0 :(得分:1)
您需要TextIter.Tags
只读属性。它为您提供了应用于单个点而不是范围的标签列表。范围更复杂,因为标记可能仅适用于范围的一半。如果你需要,你可能必须自己写一下。