revblaze / TypeSafeMenus

Simply type-safe Cocoa menus for Swift and Objective-C

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeSafeMenus

Simply type-safe Cocoa menus for Swift and Objective-C

Example

Setup

enum TypeSafeMenu {
  // define menu items (with optional custom titles)
  case iOS, macOS, tvOS, WindowsOS = "Windows OS", AndroidOS = "Android OS" 
}

Access

// All menu items
let menuItems = TypeSafeMenu.allItems()
// Subset of menu items
let subMenuItems = TypeSafeMenu.build([.iOS, .macOS, .tvOS])
// Specific menu item
let macMenuItem = TypeSafeMenu.macOS()
// Selected menu item
var selectedMenuItem: TypeSafeMenu {
  return menuObject.selectedItem.observed()
}

Implementation

// Populating menu
menuObject.addItems(menuItems)
// Show subset
menuObject.addItems(subMenuItems)
// Programmatically select item
menuObject.selectItem(macMenuItem)
// Get currently-selected item
_ = selectedMenuItem()

About

Simply type-safe Cocoa menus for Swift and Objective-C

License:MIT License


Languages

Language:Swift 100.0%