Можно ли разместить значок вектора (или шрифта) в строке состояния macOS? - PullRequest
0 голосов
/ 06 апреля 2020

Я использую Swift 5 и SwiftUI (если это имеет значение) и хочу разместить векторную иконку (или иконку шрифта, которая была бы для меня лучше) рядом с текстом в строке состояния.

Я нашел пример, который, как я понимаю, создает кнопку и помещает ее в строку состояния.

    self.statusBarItem = NSStatusBar.system.statusItem(withLength: CGFloat(NSStatusItem.variableLength))
    if let button = self.statusBarItem.button {
        button.image = NSImage(named: "Icon")
        button.title = "MyText"
        button.action = #selector(togglePopover(_:))
    }

Но, как я понимаю, использование растрового изображения не является хорошим идея, потому что его размер может варьироваться в зависимости от многих вещей. И, как правило, я использую иконки шрифтов для таких вещей, которые прекрасно работают почти везде.

Или, возможно, можно вставить представление SwiftUI в элемент строки состояния?

1 Ответ

0 голосов
/ 07 апреля 2020

Вот что Apple говорит по этому поводу

/*
 Custom views should not be set on a status item.
 The button property with a template image will allow proper styling of 
 the status item in various states and contexts and should be used instead.
 */
@property (nullable, strong) NSView *view API_DEPRECATED("Use the standard button property instead", macos(10.0,10.14));

Если вы все еще хотите это, тогда NSButton - это представление, и вы всегда можете добавить к нему подпредставление со своим пользовательским контентом. Однако я бы рекомендовал go официальным способом.

...