我试图模仿Mail.app和Finder.app在10.7+上的标记化搜索功能,在那里,左边有一个搜索放大镜图标,右边有cancel (x)按钮,但搜索字段中也包含令牌。

有没有办法让NSSearchField使用NSTokenFieldCell而不是NSSearchFieldCell?我尝试在-setCell:实例上调用NSSearchField,它可以工作,并且似乎交换单元格,在调试器中调用po [searchField cell]就可以证明这一点,但是搜索字段的绘图中断了,没有绘制文本字段。
我是以正确的方式来处理这件事,还是有更好的方法去做?谢谢!
更新10/25/2016:使用可访问性检查器,我发现Finder使用混合私有子类:
SGTSearchField : NSSearchField SGTSearchFieldCell : NSSearchFieldCellSGTTokenFieldCell : NSTokenFieldCell
这是一个名为Suggestions.framework的私有框架的一部分。希望苹果公司将来能将这些课程公诸于众。如果您希望看到此功能也是公开的,请确保使用发射雷达。
发布于 2016-05-12 01:21:29
我给你们两个最好的答案就是简单的使用NSTokenField。您可以修改它以显示小搜索图标。但是,如果这不是“成功”或“失败”,那么您可以从NSTokenField获得许多令牌化功能。
https://stackoverflow.com/questions/13021946
复制相似问题