Как увеличить значок поиска в NSSearchField? - PullRequest
0 голосов
/ 08 января 2020

Я создаю поле поиска с большей высотой, чем по умолчанию. Хотя его размер текста может быть увеличен до нужного размера, значок остается того же размера:

search bar with tiny search icon in the top left corner

Я попытался исправить это, переопределив NSSearchField 's rectForSearchButton(whenCentered:) по умолчанию прямоугольник. Однако он не только не увеличил размер кнопки, но также продублировал изображение кнопки.

override func rectForSearchButton(whenCentered isCentered: Bool) -> NSRect {
    return NSRect(x: 10, y: 10, width: 30, height: 30)
}

search field where the buttons are overlapping

Затем я попытался прокомментировать вышеперечисленное и подклассы NSSearchFieldCell, которые дали аналогичный результат.

override func searchButtonRect(forBounds rect: NSRect) -> NSRect {
    return NSRect(x: 10, y: 10, width: 30, height: 30)
}

search field still with two icons

Как правильно отцентрировать и увеличить этот значок? Я хочу, чтобы он занимал все пространство и находился по центру или, по крайней мере, выглядел как обычное поле поиска.

1 Ответ

0 голосов
/ 09 января 2020

Вам нужно изменить масштабирование изображения кнопки. Предполагая, что ваш пользовательский класс создается из Storyboard / XIB, а высота изменяется через ограничение, это может быть примерно так:

NSSearchField button image

class CustomSearchFiled: NSSearchField {

    override func awakeFromNib() {
        if let cell = self.cell as? NSSearchFieldCell {
            cell.searchButtonCell?.imageScaling = .scaleProportionallyUpOrDown
        }
    }
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...