Go bindings for the Cocoa framework to build macOS applications.
The following is a basic Hello World application.
package main
import (
"fmt"
"github.com/mojbro/gocoa"
)
func main() {
gocoa.InitApplication()
gocoa.OnApplicationDidFinishLaunching(func() {
fmt.Println("App running!")
})
wnd := gocoa.NewWindow("Hello World!", 150, 150, 300, 200)
// Change me button
currentTitle, nextTitle := "Change me!", "Change me again!"
changeButton := gocoa.NewButton(75, 125, 150, 25)
changeButton.SetTitle(currentTitle)
changeButton.OnClick(func() {
changeButton.SetTitle(nextTitle)
currentTitle, nextTitle = nextTitle, currentTitle
})
wnd.AddButton(changeButton)
// Quit button
quitButton := gocoa.NewButton(75, 50, 150, 25)
quitButton.SetTitle("Quit")
quitButton.OnClick(func() { gocoa.TerminateApplication() })
wnd.AddButton(quitButton)
wnd.MakeKeyAndOrderFront()
gocoa.RunApplication()
}
This package is very, very early and incomplete! It is mostly just an experiment and is not really useful yet.
Big thanks to Philipp Haussleiter who has contributed a great deal to this project.