Я работаю над приложением панели меню MacOS, которое может иметь переменную длину:
@IBOutlet weak var statusMenu: NSMenu!
let statusItem: NSStatusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
statusItem.title = "Long text..."
statusItem.menu = statusMenu
Если длина заголовка элемента состояния будет слишком длинной для отображения, а элемент строки меню будет скрыт, я бы хотел изменить заголовок на сокращенную версию. Итак, мне нужно:
Пункт 3 прост. У меня проблемы с пунктами 1 и 2. Ни один из ответов stackoverflow у меня не работает. Есть ли способ, как это сделать?
Привет @MostafaBerg. Благодарим за упоминание о том, что он объявлен устаревшим. К сожалению, проблема не в том, как я установил заголовок. кнопка Я проверил свойство кнопки и не могу найти там способа проверить, отображается ли statusItem (.button.isVisible не работает)
Что ж, isVisible, вероятно, не будет работать в этом случае, у вас есть снимки экрана с обоими состояниями, чтобы я мог посмотреть?
Текст видим: ibb.co/dH8nkq, текст слишком длинный, невидимый: ibb.co/jKqdrV
Вы контролируете заказ? Если вы выйдете из Skype и снова запустите его, переместится ли значок в левую часть вашего статуса?
Он идет на левый сайт. Без частного api невозможно (?) Программно изменить порядок элементов (приоритет ак).
Это правильно, но когда он идет влево, есть ли огромное пустое пространство на месте строки? Или он снова сжимается в маленькую коробочку?
Если значок скайпа находится слева, а для моего приложения справа недостаточно места, скайп и мое приложение скрыты. Похоже, что текущее сфокусированное меню приложения вычисляет, сколько места ему требуется, и если пространство больше, чем доступно, оно начинает скрывать значки строки меню, начиная с левого, пока не будет достаточно свободного места. Интересно, есть ли способ рассчитать размер текущего меню приложения?
Привет, Том!, Интересная проблема, когда я взглянул на документацию Apple, похоже, что заголовок устарел, согласно документации, в которой говорится, что:
Instances are created by the NSStatusBar method statusItem(withLength:), which automatically adds the new status item to the status bar. The appearance and behavior of the status item are then set using the button property.
, можете ли вы вместо этого попробовать использовать свойство кнопки и посмотреть, решит ли это проблему? вот ссылка на документацию