Hiding the lupe icon of a NSSearchField

2019-05-23 02:49发布

问题:

I’m using a NSSearchField (not subclassed). When it’s not focused, the placeholderString is centered. But the lupe icon on the left appears a bit offset, so in fact the whole thing appears not to be centered.

Is it possible to hide the lupe icon?

回答1:

There is not any direct access to the icon, so that a workaround is first access to the NSSearchField cell (casted as shown), and afterwards access to its button cell.

self in this example is an instance of NSSearchField

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

Deafault Search Field:

Hidden/Transparent Icon:



回答2:

Swift3 conversion:

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