SkillAgentSearch skills...

StatusItemController

A "view controller" for menu bar Mac apps

Install / Use

/learn @hexedbits/StatusItemController
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

StatusItemController CI

A "view controller" for menu bar Mac apps

<br>

About

This library provides a StatusItemController component that you can use to create menu bar apps, or apps with menu bar items in macOS.

This component is used in Red Eye and Lucifer.

Usage

  1. Subclass StatusItemController
  2. Implement the following methods:
    1. buildMenu() -> NSMenu
    2. leftClickAction()
    3. rightClickAction()
  3. Create an instance of your StatusItemController subclass in your NSApplicationDelegate.

Requirements

  • macOS 11.0+
  • Swift 5.9+
  • Xcode 15.0+
  • SwiftLint

Installation

CocoaPods

pod 'StatusItemController', '~> 2.0.0'

Swift Package Manager

Add StatusItemController to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/hexedbits/StatusItemController", from: "2.0.0")
]

Alternatively, you can add the package directly via Xcode.

Documentation

You can read the documentation here. Generated with jazzy. Hosted by GitHub Pages.

Notes on Testing

Unfortunately, StatusItemController cannot be tested directly. Attempting to create an NSStatusItem outside of an app context throws an assert, which makes sense. Thus, in order to test StatusItemController it must be embedded in an app. Tests can be found in the Example App test suite. See #15 for more details.

Contributing

Interested in making contributions to this project? Please review the guides below.

Also consider sponsoring this project or buying my apps! ✌️

Credits

Created and maintained by Jesse Squires.

License

Released under the MIT License. See LICENSE for details.

Copyright © 2020-present Jesse Squires.

Related Skills

View on GitHub
GitHub Stars69
CategoryDevelopment
Updated22d ago
Forks4

Languages

Swift

Security Score

100/100

Audited on Mar 12, 2026

No findings