@Intenditore

MacOS — как написать утилиту для выполнения в бекраунде?

Приветствую.
Я абсолютный нуб. Недавно выучил C++, до того был на Питоне, ооочень давно писал на JS/PHP. То есть опыта системного программирования у меня нет.
Встала задача - сделать одну утилиту для работы в бекграунде. Принципиально понимаю как, но есть очень много нюансов - как прописать сервис и запускать его? Как повесить его иконку в менюбаре и добавить окно настроек? А главное - как проводить отладку всего этого, ведь в playground такое не запустится?
Вопрос не праздный - пересмотренные мной курсы описывают создание оконных приложений "в себе". Взаимодействие с системой если описывается, то очень кратко и не подробно.
Буду благодарен за наводку на материалы, которые позволят быстро войти в курс дела, пусть даже в общих чертах.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@RomanKerimov
Info.plist:
LSUIElement = YES

AppDelegate.swift:
import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    let statusMenu: NSMenu = .init()
    let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        
        statusItem.button?.image = NSImage.init(named: NSImage.actionTemplateName)
        statusItem.menu = statusMenu
        
        let quitMenuItem: NSMenuItem = .init(title: "Quit", action: #selector(quit), keyEquivalent: "")
        statusMenu.addItem(quitMenuItem)
    }
    
    @objc func quit() {
        NSApp.terminate(self)
    }
}


Остальное как в курсах.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы