我正在尝试模拟Mail.app和Finder.app上10.7+的标记搜索功能,其中似乎有一个NSSearchField,左侧有搜索放大镜图标,右侧有取消(x)按钮,但还包括搜索字段内的标记。
是否有办法使NSSearchField使用NSTokenFieldCell而不是NSSearchFieldCell? 我已经尝试在NSSearchField实例上调用-setCell:
,它有效并且似乎交换了单元格,可以通过在调试器中调用po [searchField cell]
进行证明,但是搜索字段的绘制会中断,并且不会绘制文本字段。
我是以正确的方式处理这个问题吗,还是有更好的方法来解决它? 谢谢!
更新10/25/2016:使用辅助功能检查器,我发现Finder和Mail使用混合私有子类:
SGTSearchField:NSSearchField
SGTSearchFieldCell:NSSearchFieldCell
SGTTokenFieldCell:NSTokenFieldCell
这些是私有框架Suggestions.framework的一部分。 希望苹果将来会公开这些类。如果您也想看到此功能变为公共,请务必提交radar。