Как я могу выровнять текст в строке состояния по горизонтали? - PullRequest
0 голосов
/ 05 февраля 2020

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

Вот что происходит: https://imgur.com/A5yj6CI.gif

guard let statusButton = statusBarItem.button else { return }
let formatter = DateFormatter()

let timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { timer in
  formatter.dateFormat = "hh:mm:ss.S"
  let dateTimeString = formatter.string(from: Date())
  statusButton.title = dateTimeString
}

Выравнивание по левому краю - решение? Если нет, какие варианты?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Я сделал моноширинный шрифт

statusButton.font = NSFont(name: typeFace, size: 14)

0 голосов
/ 05 февраля 2020

Выровненный по левому краю ярлык не поможет решить вашу проблему, если у вашего ярлыка недостаточно места для размещения смещения (из-за постоянно меняющегося значения ярлыка), поэтому я считаю, что вы можете решить его, установив фиксированную ширину ограничение для вашей метки.

Прежде всего вам нужно установить для вашей метки максимально возможное значение метки, т.е. 99: 99: 99.9 в вашем случае, посмотреть, сколько значение ширины метки.

enter image description here

Затем установите ограничение ширины для вашего ярлыка.

enter image description here

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

enter image description here

Таким образом, ваша метка будет достаточно места для его перемещения без каких-либо изменений общего вида других элементов, которые могут быть связаны с этим.

...