(MacOSX,Cocoa)如何在输入文本字段中创建可拖放的占位符元素?

(MacOSX,Cocoa)如何在输入文本字段中创建可拖放的占位符元素?,macos,cocoa,Macos,Cocoa,我正在编写一个Cocoa应用程序,我希望用户能够使用占位符组合一个模板字符串。(例如,一个(艺术家)占位符将由当前在iTunes中播放的歌曲的艺术家填写,等等)我见过这样的应用程序,其中每个可能的占位符术语都显示在一个蓝色的“菱形”中,用户可以将这些“菱形”拖放到输入文本字段中以构造一个字符串,可选择输入自己的一些自定义文本(例如,用连字符分隔(艺术家)和(标题)“菱形”) 有人知道是否有任何示例代码可以帮助我实现这样的东西吗 我说的是这样的:(这来自于“Hazel”应用程序,在Hazel规则中

我正在编写一个Cocoa应用程序,我希望用户能够使用占位符组合一个模板字符串。(例如,一个(艺术家)占位符将由当前在iTunes中播放的歌曲的艺术家填写,等等)我见过这样的应用程序,其中每个可能的占位符术语都显示在一个蓝色的“菱形”中,用户可以将这些“菱形”拖放到输入文本字段中以构造一个字符串,可选择输入自己的一些自定义文本(例如,用连字符分隔(艺术家)和(标题)“菱形”)

有人知道是否有任何示例代码可以帮助我实现这样的东西吗

我说的是这样的:(这来自于“Hazel”应用程序,在Hazel规则中,您可以根据指定的模板模式重命名文件)


NSTokenField在上图中聚焦(周围有蓝环)。每个“令牌”(您的菱形)都是令牌字段的自动识别字符串。正如rdelmar在上面的评论,仔细阅读NSTokenField,您将在大部分的过程中完成


令牌的“来源”很可能是一个圆形边缘的NSBox,其中包含一个无边界、无背景的NStokenfield,每个NStokenfield有一个令牌。这将使您可以轻松地拖放和对齐。

如果您需要自定义单个令牌的l&f,您需要实现自己的功能:带有NSTextAttachmentCells的NSTextView和NSTextAttachmentCells。。。这很痛苦,代码也很多,但实际上并没有那么难

NSTokenAttachment单元只有很多专用l&f选项:(

那些“蓝色菱形”是NSTokenField,请查看令牌字段编程指南。