NSTokenField中的自定义标记

时间:2011-07-28 14:56:16

标签: objective-c cocoa macos nstokenfield

有没有办法在NSTokenField内设置自定义令牌?通过“自定义”我的意思是我想以自定义方式绘制它们 - 自定义悬停,背景图像等。

2 个答案:

答案 0 :(得分:7)

可以在不使用私有API的情况下完成。 NSTokenField只是NSTextField,可以巧妙地使用对自定义附件单元支持的支持。自定义它涉及对复杂NSTextStorage / NSLayoutManager / NSAttachmentCell交互的一些洞察,但可以在以下位置查看一个可自定义令牌的开源实现:https://github.com/octiplex/OEXTokenField

答案 1 :(得分:4)

是的,这是可能的,但您必须使用私有API,如果您打算将应用程序发布到Mac App Store,则不需要这些API。我已经联系过Apple,他们已经确认没有私有API就无法做到这一点 - 如果只需要使用公共API需要不同的外观,就必须从头开始创建一个自己的控件。

如果您仍想使用私有API执行此操作,请查看BWToolkit。 BWTokenField使用这些私有API来修改令牌外观。这应该是一个很好的起点。但需要一段时间才能弄明白并调整一切,直到获得一个人想要的效果。