隐藏 NSSearchField 的 lupe 图标

Hiding the lupe icon of a NSSearchField

我正在使用 NSSearchField(未分类)。当它没有聚焦时,placeholderString 居中。但是左边的 lupe 图标看起来有点偏移,所以实际上整个东西似乎没有居中。

是否可以隐藏 lupe 图标?

无法直接访问图标,因此解决方法是首先访问 NSSearchField 单元格(如图所示),然后访问其按钮单元格。

本例中的 self 是 NSSearchField 的一个实例

[(NSButtonCell *)[(NSSearchFieldCell *)self.cell searchButtonCell] setTransparent:YES];

默认搜索字段:

Hidden/Transparent 图标:

Swift3 转换:

(self.cell as! NSSearchFieldCell).searchButtonCell?.isTransparent = true