Скрытие значка лупы NSSearchField

Я использую NSSearchField (без подкласса). Когда он не сфокусирован, placeholderString находится в центре. Но значок лупы слева кажется немного смещенным, поэтому на самом деле все это выглядит не по центру.

Можно ли скрыть значок лупы?

введите здесь описание изображения


person ixany    schedule 27.02.2017    source источник


Ответы (2)


Прямого доступа к значку нет, поэтому обходным путем является сначала доступ к ячейке NSSearchField (приведенной, как показано), а затем доступ к ее ячейке кнопки.

self в этом примере является экземпляром NSSearchField

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

Поле поиска по умолчанию:

введите здесь описание изображения

Скрытый/прозрачный значок:

введите здесь описание изображения

person Daniel Gastón    schedule 23.05.2017
comment
Возможно, будет лучше добавить описание к вашему ответу, чтобы помочь другим понять его. - person zhm; 23.05.2017
comment
Я согласен @MartinZhai. Надеюсь, отредактированная версия разъяснит это. - person Daniel Gastón; 24.05.2017
comment
Спасибо Даниил! Работает действительно отлично. Однако я не смог найти, как скрыть значок, когда searchField неактивен, но отображать его, когда пользователь его редактирует. Любое простое решение для этого тоже? :) - person ixany; 09.06.2017

Преобразование Swift3:

(self.cell as! NSSearchFieldCell).searchButtonCell?.isTransparent = true
person firstinq    schedule 21.07.2017