Skip to content

Instantly share code, notes, and snippets.

@JaggerJo
Created March 7, 2021 16:15
Show Gist options
  • Save JaggerJo/1d18fd41036ed2f9dda039f5a1649c3b to your computer and use it in GitHub Desktop.
Save JaggerJo/1d18fd41036ed2f9dda039f5a1649c3b to your computer and use it in GitHub Desktop.
AppKit application window in code
let editMenu =
let undoMenuItem =
let item = new NSMenuItem("Undo")
item.KeyEquivalent <- "z"
item.Action <- ObjCRuntime.Selector("undo:")
item
let redoMenuItem =
let item = new NSMenuItem("Redo")
item.KeyEquivalent <- "z"
item.KeyEquivalentModifierMask <- NSEventModifierMask.ShiftKeyMask ||| NSEventModifierMask.CommandKeyMask
item.Action <- ObjCRuntime.Selector("redo:")
item
let cutMenuItem =
let item = new NSMenuItem("Cut")
item.KeyEquivalent <- "x"
item.Action <- ObjCRuntime.Selector("cut:")
item
let copyMenuItem =
let item = new NSMenuItem("Copy")
item.KeyEquivalent <- "c"
item.Action <- ObjCRuntime.Selector("copy:")
item
let pasteMenuItem =
let item = new NSMenuItem("Paste")
item.KeyEquivalent <- "v"
item.Action <- ObjCRuntime.Selector("paste:")
item
let item = new NSMenuItem()
item.Title <- "Edit"
item.Enabled <- true
item.Submenu <- new NSMenu(Title = "Edit")
item.Submenu.Items <- [|
undoMenuItem
redoMenuItem
NSMenuItem.SeparatorItem
cutMenuItem
copyMenuItem
pasteMenuItem
|]
item
let appMenu =
let quitMenuItem =
let item = new NSMenuItem("Quit")
item.KeyEquivalent <- "q"
item.Action <- ObjCRuntime.Selector("terminate:")
item
let item = new NSMenuItem()
item.Enabled <- true
item.Title <- "App Name"
item.Submenu <- new NSMenu()
item.Submenu.Items <- [|
quitMenuItem
|]
item
let mainMenu = new NSMenu()
mainMenu.AddItem appMenu
mainMenu.AddItem editMenu
let window = new UI.PreferencesWindow(appState)
window.MakeKeyWindow()
window.OrderFront(null)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment