Как сделать так, чтобы строка состояния отображала текст вместо значка в Swift (macOS)? - PullRequest
0 голосов
/ 05 июня 2018

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

    let icon = NSImage(named: NSImage.Name(rawValue: "statusIcon"))
    icon?.isTemplate = true // best for dark mode
    statusItem.image = icon
    statusItem.menu = statusMenu

В настоящее время изображение отображается, но как мне сделать так, чтобы оно отображало текст, не создавая изображение, содержащее текст?

Ответы [ 4 ]

0 голосов
/ 03 февраля 2019

Swift 4.2

let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.button?.title = "My Title"
0 голосов
/ 08 июня 2018

Вы не получили предупреждение об устаревании при установке свойства image?

Прочитайте документацию NSStatusItem , особо отметив свойство button: его описание, тип и что этот тип наследует от ...

Если послеВ этом исследовании у вас есть проблема с вашим новым дизайном, задайте новый вопрос, покажите ваш новый код, и кто-то, несомненно, поможет вам.

0 голосов
/ 09 июня 2018
  1. Создайте NSTextField, который вы хотите отобразить в строке состояния;
  2. Создайте пользовательский NSView;
  3. Добавьте текст в ваше настраиваемое представление;
  4. Создайте statusItem иустановите вид, затем сделайте.

OC:

    #define DEFAULT_W 80
    #define DEFAULT_H 22
    NSTextField* txt      = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, DEFAULT_W, DEFAULT_H)];
    txt.stringValue = @"Hellow world!";

    mStatusBackgroundView = [[NSView alloc]initWithFrame:NSMakeRect(0, 0, DEFAULT_W, DEFAULT_H)];
    [mStatusBackgroundView addSubview:txt];

    mStatusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:DEFAULT_W];
    mStatusItem.view = mStatusBackgroundView;

Swift:

    let DEFAULT_W = 80
    let DEFAULT_H = 22
    let txt = NSTextField(frame: NSMakeRect(0, 0, CGFloat(DEFAULT_W), CGFloat(DEFAULT_H)))
    txt.stringValue = "Hellow world!"

    mStatusBackgroundView = NSView(frame: NSMakeRect(0, 0, CGFloat(DEFAULT_W), CGFloat(DEFAULT_H)))
    mStatusBackgroundView.addSubview(txt)

    mStatusItem = NSStatusBar.system().statusItem(withLength: CGFloat(DEFAULT_W))
    mStatusItem.view = mStatusBackgroundView;
0 голосов
/ 06 июня 2018

Вы используете

NSStatusItem.title = ""

Однако, это устарело

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...