2017-02-27 3 views
2

Ich benutze eine reguläre NSSearchField (nicht unterklassifiziert). Wenn es inaktiv ist, ist die placeholderString zentriert, was ich für gut in Ordnung halte. Aber ich habe bemerkt, dass das Symbol neben dem PlatzhalterString nur zusätzlich zur linken Seite gezeichnet wird, also scheint das Ganze nicht zentriert zu sein.NSSearchField: So verstecken Sie das Symbol (lupe)

enter image description here

Wie kann ich die lupe Symbol verbergen?

Antwort

2

Es gibt keinen direkten Zugriff auf das Symbol, so dass eine Problemumgehung der erste Zugriff auf die Zelle NSSearchField (wie dargestellt) und anschließend der Zugriff auf die Schaltfläche Zelle ist.

Selbst in diesem Beispiel ist eine Instanz von NSSearchField

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

Deafault Search Field:

enter image description here

Versteckt/Transparent Icon:

enter image description here

+1

Es kann besser sein, eine Beschreibung zu Ihrer Antwort hinzuzufügen, um anderen zu helfen, sie zu verstehen. –

+0

Ich stimme @MartinZhai. Hoffe die bearbeitete Version klärt es auf. –

+0

Danke Daniel! Funktioniert wirklich gut. Ich konnte jedoch nicht herausfinden, wie das Symbol ausgeblendet werden kann, wenn das searchField inaktiv ist, es aber anzeigen, wenn der Benutzer es bearbeitet. Eine einfache Lösung auch dafür? :) – ixany

0

swift3 Umwandlung:

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