gpt4 book ai didi

cocoa - 将控件添加到 NSTextView 并将它们绑定(bind)到(范围)字符

转载 作者:行者123 更新时间:2023-12-03 17:14:39 24 4
gpt4 key购买 nike

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

enter image description here

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

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

我有以下问题:

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

  • 如何将一个控件(与上述示例中的控件类似)附加到特定范围的文本,以便其在 NSTextView 中的位置是动态的并遵循布局操作?

我找到了this它提供了一些提示,但不涵盖特定文本范围的附件。

最佳答案

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

挑战在于找到一种方法将鼠标移动事件中的点转换为 NSTextView 内特定字符串的位置。

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

关于cocoa - 将控件添加到 NSTextView 并将它们绑定(bind)到(范围)字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com