1

编辑代码时,Xcode 能够显示文本控件,例如可以显示上下文菜单的下拉按钮。我见过其他处理具有类似功能的文本的 OS X 应用程序。请参阅随附的示例。

在此处输入图像描述

我认为这种效果是使用NSTextAttachmentCell- 尽管我不确定这是否是实现它的正确方法。

对于我自己的应用程序,我也想使用这种技术。

我有以下问题:

  • NSTextAttachmentCell实现这种功能的正确方法是什么?如果不是,那会是什么?

  • 如何将与上述示例中的控件相比较的控件附加到特定范围的文本,以使其在其中的位置NSTextView是动态的并遵循布局操作?

我发现给出了一些提示,但不包括特定文本范围的附件。

4

1 回答 1

1

虽然NSTextAttachmentCell会起作用,但它有一个缺点:单元格将成为文本中的一个字形,这不是我想要的。它扭曲了文本的布局,是可选择的等等。我希望将单元格绘制在文本上,就像 Xcode 中的行为一样。

挑战在于找到一种方法,将鼠标移动事件中的点转换为NSTextView.

经过一番挖掘后,我在 Apple 的演示应用程序中发现了一个名为LayoutManagerDemo的小宝石。该演示展示了一个自定义子类,NSTextView能够在鼠标悬停在其视图上时突出显示单个字符、单词和行。从那里开始,很容易在所需的按钮处淡入淡出,NSPoint然后显示带有一些选项的弹出菜单。

于 2012-05-27T07:56:41.617 回答