我有一个 NSTextView 和一个自定义 NSButton。我想要做的是将该按钮(60x16 大小)插入到 NSTextView 的末尾。
我怎么能做这样的事情?我一直在尝试搜索如何做到这一点,但我没有得到任何地方。
我应该从哪里开始?谢谢
1 回答
我相信这个问题和你的很相似:
NSTextView / NSTextStorage 中的按钮
引用问题:
如何让 NSButton 出现在文本中并对点击做出反应?
请注意,该问题尚未完全解决,但似乎 OP 有一个良好的开端。希望你能从讨论中得到一些线索。
这是一个答案:
NSTextAttachment 保存附件的内容;它是属性字符串中 NSAttachmentCharacter 的 NSAttachmentAttributeName 属性的值。内容通常由 NSFileWrapper 给出,但这不是必需的;您可以使用 nil 文件包装器创建一个空的 NSTextAttachment。
NSTextAttachmentCell 处理附件的显示和用户交互。默认情况下,一个 NSTextAttachment 将创建一个 NSTextAttachmentCell 来显示自己,这取决于附件的内容;在一般情况下,这只是一个显示图标的图像单元格。
然而,如果你愿意,你可以为你的附件提供一个自定义的 NSTextAttachmentCell。它不必是 NSTextAttachmentCell 类的成员;它只需要符合 NSTextAttachmentCell 协议。实际上,即使那样也不是绝对必要的。它只需要实现一些基本的尺寸和绘图方法。大多数细胞已经这样做了。
但是,您需要自己处理鼠标事件。您可能想要实现的方法是 wantToTrackMouseForEvent:inRect:ofView:atCharacterIndex: 和 trackMouse:inRect:ofView:atCharacterIndex:。这里的字符索引应该让您确定文本的哪个部分是相关的。