Как в mac os строку меню в

Обновлено: 06.07.2024

Приложения, размещенные в строке меню, уже давно известны пользователям macOS. У некоторых из этих приложений есть «обычная» часть, другие размещены только в строке меню.
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:

  • назначать иконку приложения в строке меню
  • делать приложение размещенным только в строке меню
  • добавлять пользовательское меню
  • показывать всплывающее по запросу пользователя окно и прятать его, когда необходимо, используя Event Monitoring
Замечание: это руководство предполагает, что вы знакомы со Swift и macOS.

Начинаем

Запускаем Xcode. Далее в меню File/New/Project…, выберите шаблон macOS/Application/Cocoa App и нажмите Next.

На следующем экране введите Quotes в качестве Product Name, выберите ваши Organization Name и Organization Identifier. Затем удостоверьтесь, что в качестве языка приложения выбран Swift и отмечен чекбокс Use Storyboards. Снимите отметку с чекбоксов Create Document-Based Application, Use Core Data, Include Unit tests и Include UI Tests.

Наконец, кликните ещё раз Next, укажите место для сохранения проекта и кликните Create.
Как только новый проект будет создан, откройте AppDelegate.swift и добавьте к классу следующее свойство:


Тут мы создаём в строке меню Status Item (иконку приложения) фиксированной длины, которая будет видна пользователям.

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

В project navigator перейдите в Assets.xcassets, загрузите картинку и перетащите её в каталог ресурсов (asset catalog).

Выберите картинку и откройте инспектор атрибутов. Измените опцию Render As на Template Image.


Если вы используете свою собственную картинку, убедитесь в том, что изображение черно-белое и сконфигурируйте его как Template image, чтобы иконка выглядела отлично как на темной, так и на светлой строке меню.

Вернитесь к AppDelegate.swift, и добавьте следующий код к applicationDidFinishLaunching(_:)


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

Добавьте в класс следующий метод:


Этот метод просто выводит цитату на консоль.

Обратите внимание на директиву метода objc. Это позволяет использовать этот метод в качестве отклика на нажатие кнопки.

Постройте и запустите приложение, и вы увидите новое приложение в строке меню. Ура!
Каждый раз, как вы кликаете на иконке в строке меню, в консоли Xcode выводится известное изречение Марка Твена.

Прячем главное окно и иконку в доке

Есть пара мелочей, которые нам нужно сделать, прежде чем заняться непосредственно функционалом:

  • удалить иконку в доке
  • удалить ненужное главное окно приложения


Теперь время разобраться с главным окном приложения.

  • откройте Main.storyboard
  • выберите Window Controller scene и удалите его
  • View Controller scene оставьте, мы скоро будем использовать его


Постройте и запустите приложение. Теперь у приложения нет как главного окна, так и ненужной иконки в доке. Отлично!

Добавляем к Status Item меню

Одной-единственной реакции на клик явно недостаточно для серьёзного приложения. Простейший способ добавить функциональности — добавить меню. Допишите эту функцию в конце AppDelegate.


А затем добавьте этот вызов в конце applicationDidFinishLaunching(_:)


Мы создаём NSMenu, добавляем к нему 3 экземпляра NSMenuItem и устанавливаем это меню как меню иконки приложения.

Несколько важных замечаний:

  • title элемента меню — это текст, который появится в меню. Хорошее место для локализации приложения (если это необходимо).
  • action, как и action кнопки или другого контрола — это метод, который вызывается, когда пользователь кликает на элементе меню
  • keyEquivalent — это сочетание клавиш, которое можно использовать для выбора элемента меню. Символы в нижнем регистре используют Cmd как модификатор, а в верхнем регистре — Cmd+Shift. Это работает только в том случае, если приложение находится на самом верху и активно. В нашем случае необходимо, чтобы было видно меню или какое-то другое окно, так как у нашего приложения нет иконки в доке
  • separatorItem — это неактивный элемент меню в виде серой линии между другими элементами. Используйте его для группировки
  • printQuote — метод, который вы уже определили в AppDelegate, а terminate — метод, определённый NSApplication.


Попробуйте кликнуть меню — выбор Print Quote выведет цитату в консоль Xcode, а Quit Quotes завершит приложение.

Добавляем всплывающее окно

Вы видели, как легко добавить меню из кода, но показ цитаты в консоли Xcode — это явно не то, что ожидают от приложения пользователи. Сейчас мы добавим простой view controller, чтобы показывать цитаты правильным образом.

Идите в меню File/New/File…, выберите шаблон macOS/Source/Cocoa Class и кликните Next.


  • назовите класс QuotesViewController
  • сделайте наследником NSViewController
  • убедитесь, что чекбокс Also create XIB file for user interface не отмечен
  • установите язык в Swift


Сначала выберите Identity Inspector и измените класс на QuotesViewController, затем, установите Storyboard ID на QuotesViewController

Теперь добавьте следующий код к концу файла QuotesViewController.swift:


Что здесь происходит:

  1. получаем ссылку на Main.storyboard.
  2. создаем Scene identifier, который соответствует тому, который мы только что установили чуть выше.
  3. создаём экземпляр QuotesViewController и возвращаем его.

Обратите внимание на fatalError внутри оператора guard. Бывает неплохо использовать его или assertionFailure, чтобы, если что-то в разработке пошло не так, самому, да и другим членам команды разработки, быть в курсе.

Теперь вернемся к AppDelegate.swift. Добавим новое свойство.


Затем замените applicationDidFinishLaunching(_:) следующим кодом:


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

Добавьте следующие три метода в AppDelegate:


showPopover() показывает всплывающее окно. Вы только указываете, откуда оно появляется, macOS позиционирует его и дорисовывает стрелочку, как будто оно появляется из строки меню.

closePopover() просто закрывает всплывающее окно, а togglePopover() — метод, который либо показывает, либо прячет всплывающее окно, в зависимости от его состояния.

Запустите приложение и кликните на его иконке.


Все отлично, но где контент?

Реализуем Quote View Controller

Сначала вам нужна модель для хранения цитат и атрибутов. Идите в меню File/New/File… и выберите macOS/Source/Swift File template, затем Next. Назовите файл Quote и кликните Create.

Откройте файл Quote.swift и добавьте в него следующий код:


Здесь мы определяем простую структуру цитаты и статическое свойство, которое возвращает все цитаты. Так как мы сделали Quote соответствующим протоколу CustomStringConvertible, мы легко можем получить удобно отформатированный текст.

Есть прогресс, но нам еще нужны элементы управления, чтобы все это отобразить.

Добавляем элементы интерфейса

Откройте Main.storyboard и вытащите 3 кноки (Push Button) и метку (Multiline Label) на view controller.

Расположите кнопки и метку так, чтобы они выглядели примерно так:


Прикрепите левую кнопку к левому краю с промежутком 20 и отцентрируйте вертикально.
Прикрепите правую кнопку к правому краю с промежутком 20 и отцентрируйте вертикально.
Прикрепите нижнюю кнопку к нижнему краю с промежутком 20 и отцентрируйте горизонтально.
Прикрепите левый и правый край метки к кнопкам с промежутком 20 отцентрируйте вертикально.


Вы увидите несколько ошибок расположения, так как для auto layout недостаточно информации, чтобы разобраться.

Установите у метки Horizontal Content Hugging Priority в 249, чтобы позволить метке изменять размер.


Теперь сделайте следующее:

  • установите image левой кнопки в NSGoLeftTemplate и очистите title
  • установите image правой кнопки в NSGoRightTemplate и очистите title
  • установите title кнопки внизу в Quit Quotes.
  • установите text alignment у метки в center.
  • проверьте, что Line Break у метки установлен в Word Wrap.

Теперь откройте QuotesViewController.swift и добавьте следующий код в реализацию класса QuotesViewController:

Добавьте этот экстеншн в реализацию класса. Теперь в QuotesViewController.swift два расширения класса.


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

Соединяем код с Interface Builder

Обратите внимание: Xcode разместил кружки слева от вашего кода — возле ключевых слов IBAction и IBOutlet.


Мы будем их использовать, чтобы соединить код с UI.

Держа нажатой клавишу alt кликните на Main.storyboard в the project navigator. Таким образом storyboard откроется в Assistant Editor справа, а код — слева.

Перетащите кружок слева от textLabel на метку в interface builder. Таким же образом соедините методы previous, next и quit с левой, правой и нижней кнопками соответственно.


Запустите ваше приложение.


Мы использовали размер всплывающего окна по умолчанию. Если вы хотите всплывающее окно побольше или поменьше, просто измените его размер в storyboard.

Пишем код для кнопок

Если вы еще не скрыли Assistant Editor, нажмите Cmd-Return или View > Standard Editor > Show Standard Editor

Откройте QuotesViewController.swift и добавьте следующие свойства в реализацию класса:


Свойство quotes содержит все цитаты, а currentQuoteIndex — это индекс цитаты, которая выводится в данный момент. У currentQuoteIndex есть также property observer, чтобы обновить содержимое метки новой цитатой, когда меняется индекс.

Теперь добавьте следующие методы:


Когда view загружается, мы устанавливаем индекс цитаты в 0, что, в свою очередь, приводит к обновлению интерфейса. updateQuote() просто обновляет текстовую метку, чтобы отобразить цитату. соответствующую currentQuoteIndex.

Наконец, обновите эти методы следующим кодом:


Методы next() и previous() циклически перелистывают все цитаты. quit закрывает приложение.


Мониторинг событий

Есть ещё одна вещь, которую пользователи ждут от нашего приложения — прятать всплывающее окно, когда пользователь кликает где-то вне него. Для этого нам нужен механизм, называемый macOS global event monitor.

Создадим новый Swift файл, назовём его EventMonitor, и заменим его содержимое следующим кодом:


При инициализации экземпляра этого класса мы передаем ему маску событий, который будем прослушивать (вроде нажатия клавиш, прокрутки колеса мыши и т.д.) и обработчик события.
Когда мы готовы начать прослушивание, start() вызывает addGlobalMonitorForEventsMatchingMask(_:handler:), который возвращает объект, который мы сохраняем. Как только случается событие, содержавшееся в маске, система вызывает ваш обработчик.

Чтобы прекратить мониторинг событий, в stop() вызывается removeMonitor() и мы удаляем объект путем присваивания ему значения nil.

Все, что нам остается — это вызывать в нужное время start() and stop(). Класс также вызывает stop() в деинициалайзере, чтобы прибрать за собой.

Подключаем Event Monitor

Откройте AppDelegate.swift в последний раз и добавьте новое свойство:


Затем добавьте этот код, чтобы сконфигурировать event monitor в конце applicationDidFinishLaunching(_:)


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

Мы используем weak ссылку на self, чтобы избежать опасности цикла сильных ссылок между AppDelegate и EventMonitor.

Добавьте следующий код в конец метода showPopover(_:):


Здесь мы стартуем мониторинг событий, когда появляется всплывающее окно.

Теперь добавьте код в конце метода closePopover(_:):


Здесь мы завершаем мониторинг, когда всплывающее окно закрывается.

Заключение

Здесь вы найдете полный код этого проекта.

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

Хорошее место для исследований — официальная документация: NSMenu, NSPopover и NSStatusItem.

С помощью раздела «Строка меню и Dock» в Системных настройках на Mac можно изменить внешний вид Dock и выбрать объекты, отображаемые в строке меню и Пункте управления.

Чтобы изменить эти настройки, выберите меню Apple



> «Системные настройки», затем нажмите «Строка меню и Dock» .

Строка меню и Dock

Переместите бегунок для изменения размера Dock.

Увеличение значков при наведении указателя. Переместите бегунок для выбора увеличенного размера.

Расположение на экране

Выберите местоположение панели Dock: вдоль левого, нижнего или правого края экрана.

Убрать в Dock c эффектом

Выберите визуальный эффект при сворачивании окна.

Двойное нажатие на заголовок окна

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

Свернуть: свернуть окно приложения в Dock.

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

Убирать окно в Dock в значок приложения

Сворачивать окно приложения до значка приложения в Dock. Если этот флажок снят, окно сворачивается до области в Dock.

Анимация открывающихся приложений

Скачкообразное движение значков при открытии приложений.

Автоматически показывать или скрывать Dock

Скрывать Dock, когда Вы его не используете. Чтобы отобразить скрытую панель Dock, наведите указатель на ту сторону экрана, где расположена панель Dock.

Показывать индикаторы открытых программ

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

Показывать недавние программы в Dock

Показывать приложения, которые недавно открывались (если они еще не добавлены в Dock), в одном из концов Dock.

Автоматически скрывать/показывать строку меню на рабочем столе

Показывать строку меню только при перемещении указателя к верхнему краю экрана. Чтобы всегда показывать строку меню, снимите флажок.

Автоматически скрывать/показывать строку меню в полноэкранном режиме

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

Пункт управления

Список объектов, которые всегда отображаются в Пункте управления и которые можно также отобразить в строке меню

Нажмите объект в списке, например «Wi‑Fi» или «Фокусирование», чтобы просмотреть и настроить соответствующие параметры справа.

Чтобы отобразить объект в строке меню, установите флажок «Показывать в строке меню» (снимите флажок, если не хотите отображать объект).

Для некоторых объектов, например «Фокусирование» или «Повтор экрана», можно выбрать отображение в строке меню только тогда, когда этот объект активен.

Другие модули

Список объектов, которые можно отобразить в Пункте управления или строке меню

Нажмите объект в списке, например «Команды Универсального доступа» или «Быстрое переключение пользователей», чтобы просмотреть и настроить соответствующие параметры справа.

Чтобы отображать объект в строке меню, Пункте управления или обоих местах, установите соответствующие флажки (или снимите их, чтобы не отображать объект).

Если у Вас ноутбук Mac и Вы включили показ статуса аккумулятора в строке меню, Вы также можете включить отображение заряда аккумулятора в процентах (если статус аккумулятора показан в Пункте управления, он всегда отображается вместе с зарядом в процентах).

Только строка меню

Список объектов, которые можно отобразить только в строке меню

Нажмите объект в списке, например Spotlight или Time Machine, чтобы просмотреть и настроить соответствующие параметры справа.

Чтобы отобразить объект в строке меню, установите флажок «Показывать в строке меню» (снимите флажок, если не хотите отображать объект).

Для часов можно настроить параметры отображения даты и времени в строке меню. Для объявления времени вслух установите флажок «Произносить время», затем выберите время объявления и голос, который будет использоваться для объявлений.

Строка меню на Mac

MacOS разработан для удобства навигации для среднего пользователя компьютера, но поиск некоторых инструментов и функций может быть трудным, особенно если вы просматриваете Системные настройки. К счастью, у Mac есть строка меню (небольшая полоска вверху экрана), в которой есть несколько очень полезных ярлыков для наиболее важных функций.

  • Что находится в строке меню?
  • Как удалить виджеты из строки меню на Mac
  • Как изменить дату и время в строке меню на Mac
  • Как настроить вид батареи в строке меню на Mac
  • Как использовать Spotlight на Mac
  • Как использовать Siri на Mac
  • Как использовать Центр уведомлений на Mac
  • Как переставить иконки в строке меню
  • Бонус: профессиональные советы для виджетов панели меню на Mac

Что находится в строке меню?

Панель меню Apple и App на Mac

Строка состояния системы и Spotlight на Mac

Сири и Уведомление на Mac

Прочтите: Как заменить или определить слова на iPhone и iPad |

Как удалить виджеты из строки меню на Mac

Со временем строка меню может начать загромождаться, особенно когда вы добавляете сторонние виджеты. Вы можете удалить виджеты состояния macOS, если не используете их.

  1. Щелкните правой кнопкой мыши или щелкните, удерживая клавишу Control, виджет в строке меню.
  2. Выбрать Открыть настройки.

Снимите флажок для Показать в строке меню.

Нажмите на виджет, затем выберите настройки, а затем снимите флажок, чтобы показать в строке меню

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

Как изменить дату и время в строке меню на Mac

Вы можете изменить дату, время, часовой пояс и внешний вид даты Время вашего Mac.

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

Как вручную изменить дату и время

    Нажми на Дата и время в строке меню в правом верхнем углу экрана.

Нажмите на Открытая дата Настройки времени.

Нажмите дату и время, затем нажмите настройки

Введите пароль администратора и нажмите отпереть.

Нажмите дату и время, затем нажмите замок, затем введите свой пароль

Выберите новый время.

Снимите флажок автоматически, затем измените дату и время

Вы также можете установить дату и время автоматически для другой страны. Вы можете установить его для США, Азии или Европы.

Как вручную изменить часовой пояс

    Нажми на Дата и время в строке меню в правом верхнем углу экрана.

Нажмите на Открытая дата Настройки времени.

Нажмите дату и время, затем нажмите настройки

Введите пароль администратора и нажмите отпереть.

Нажмите часовой пояс, затем нажмите замок, затем нажмите разблокировать

Нажмите на новый область.

Отключите автоматический, затем выберите часовой пояс

Как изменить вид даты и времени Виджет строки меню

    Нажми на Дата и время в строке меню в правом верхнем углу экрана.

Нажмите на Открытая дата Настройки времени.

Нажмите дату и время, затем нажмите настройки

Введите пароль администратора и нажмите отпереть.

Нажмите Часы, затем нажмите замок, затем нажмите разблокировать

Установите флажок для Показать дату чтобы показать дату.

Выберите стиль часов, затем выберите, хотите ли вы показать день недели и дату

Как использовать виджет батареи в строке меню на Mac

Виджет батареи в строке меню, которая будет отображаться только на ноутбуках Apple, показывает, сколько сока осталось, прежде чем вам понадобится зарядить снова. Это также показывает несколько интересных фактов о вашем использовании.

  1. Нажми на виджет батареи.
    • Первый статус показывает приблизительно, сколько осталось времени до разрядки батареи. Он также показывает, работает ли ваш ноутбук от батареи или подключен к розетке.
    • Второе состояние показывает, какая программа работает от аккумулятора. Это полезно, если вы заметили, что ваша батарея разряжается намного быстрее, чем обычно. Это может быть приложение с ошибками.
  2. Нажмите на Показывать процент в цифрах показать, сколько заряда батареи осталось.

Нажмите на Настройки Open Energy Saver чтобы настроить время, в течение которого ваш экран и жесткий диск остаются активными, когда они не используются.

Нажмите батарею, затем нажмите показать процент батареи

Прочтите: Как удалить все фотографии с вашего iPhone

Как использовать Spotlight на Mac

Как использовать Siri на Mac

Как и Siri на iPhone и iPad, Siri на Mac может стать вашим личным виртуальным помощником. Он ищет на вашем Mac файлы и папки, планирует события календаря и сохраняет важные результаты поиска в вашем Центре уведомлений. Нужно что-то знать? Сири может помочь с этим.

Как использовать Центр уведомлений на Mac

Как переставить иконки в строке меню

    Удерживать командный ключ на вашей клавиатуре.

Нажмите на значок Вы хотели бы переехать. Убедитесь, что командная клавиша все еще нажата.


Отпустите кнопку мыши и командную клавишу, чтобы значок встал на место.


Бонус: профессиональные советы для виджетов панели меню на Mac

Нажатие клавиши выбора на клавиатуре при нажатии на некоторые из встроенных виджетов панели меню вызовет различную информацию.

  • Option + Нажмите на Wi-Fi, чтобы вызвать дополнительную информацию о вашей беспроводной сети, такую ​​как ваш IP-адрес, адрес маршрутизатора, тип вашей безопасности и многое другое. Вы также можете создать диагностический отчет и открыть беспроводную диагностику.
  • Option + Нажмите на Bluetooth, чтобы увидеть дополнительную информацию о вашем Bluetooth-соединении, включая его версию и адрес. Вы также можете создать диагностический отчет на рабочем столе.
  • Option + Щелкните Центр уведомлений, чтобы вручную включить или отключить функцию «Не беспокоить».

Проверьте еще больше профессиональных советов по использованию клавиши Option с виджетами панели меню!

Строка меню, расположенная вверху экрана Mac, очень полезна, так как обеспечивает быстрый доступ к системным функциям, меню приложений и ярлыкам наиболее используемых программ. В то же время она занимает на экране много места. Если размер вашего экрана невелик, то вам пригодится информация о том, как автоматически скрывать строку меню, тем самым освобождая драгоценное пространство.

1

Начиная с операционной системы OS X 10.11 El Captain, пользователям доступна простая опция системных настроек, позволяющая скрывать строку меню в автоматическом режиме. Для того, чтобы вызвать строку в нужный момент, понадобится лишь передвинуть курсор мыши в место расположения панели меню в верхней части экрана.

Шаг 1

Если хотите, чтобы строка меню скрывалась автоматически, посетите в меню Apple раздел «Системные настройки».


Шаг 2

В запустившемся окне системных настроек выберите «Основные».


Шаг 3

Поставьте галочку напротив пункта «Автоматически скрывать и показывать строку меню».


Шаг 4

Системная строка немедленно исчезнет, освободив место на экране. Для доступа к ней просто переместите курсор мыши в верхнюю часть экрана. Выпадет строка меню. После того, как вы выберете нужный пункт меню, строка исчезнет вновь.


Шаг 5

Для вызова строки меню также можно воспользоваться клавиатурой. По умолчанию комбинация клавиш для этой команды – Ctrl+F2. Если вы хотите изменить горячие клавиши, посетите «Системные настройки» и выберите опцию «Клавиатура».


Шаг 6

В открывшемся меню клавиатуры выберите вкладку «Сочетания клавиш».


Шаг 7

На панели слева кликните «Клавиатура».

Шаг 8

Удостоверьтесь в том, что напротив пункта «Перевести фокус в строку меню» установлена галочка. Для изменения настроек нажмите на надпись с указанием комбинации клавиш справа от пункта «Перевести фокус в строку меню». После выделения поля с надписью напечатайте новую комбинацию клавиш, которую хотите использовать вместо стандартной.


Шаг 9

Если работа функциональных клавиш на вашем Mac настроена по умолчанию, то для вместе с заданной комбинацией клавиш вам необходимо нажимать клавишу Fn. В противном случае клавиши сработают согласно другим, стандартным функциям. Если вы хотите установить функциональные команды в качестве стандартных, нужно изменить настройку. В меню настроек перейдите на вкладку «Клавиатура».


Шаг 10

Выберите в меню «Клавиатура» пункт «Использовать функциональные клавиши F1, F2 и др. как стандартные».


Шаг 11

Нажмите «X» в верхнем левом углу, чтобы закрыть окно системных настроек.


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

Читайте также: