9

我正在尝试在 10.7+ 上模拟 Mail.app 和 Finder.app 的标记化搜索功能,其中看起来是一个 NSSearchField,左侧是搜索放大镜图标,右侧是取消 (x) 按钮,但是还包括搜索字段内的标记。

带有标记的 NSSearchField

有没有办法让 NSSearchField 使用 NSTokenFieldCell 而不是 NSSearchFieldCell?我尝试调用-setCell:NSSearchField 实例,该实例有效并且似乎换出了单元格,正如调用po [searchField cell]调试器所证明的那样,但是搜索字段的绘图中断并且没有绘制文本字段。

我是以正确的方式解决这个问题还是有更好的方法来做到这一点?谢谢!

2016 年10 月 25 日更新:使用 Accessibility Inspector 我发现 Finder 和 Mail 使用混合私有子类:

  • SGTSearchField : NSSearchField
    • SGTSearchFieldCell : NSSearchFieldCell
    • SGTTokenFieldCell : NSTokenFieldCell

这些是名为Suggestions.framework. 希望苹果将来会公开这些课程。如果您也想公开此功能,请务必提交雷达文件。

4

1 回答 1

0

我对你们两个的最佳答案是简单地使用 NSTokenField。您也许可以对其进行修改以显示小搜索图标。但如果这不是成败,你可以从 NSTokenField 获得很多标记化的功能。

于 2016-05-12T01:21:29.907 回答