//go:build darwin package main import ( "fmt" "os/exec" "strings" "go.uber.org/zap" ) func showError(title, message string) { script := fmt.Sprintf(`display dialog "%s" buttons {"OK"} default button "OK" with title "%s"`, escapeAppleScript(message), escapeAppleScript(title)) if err := exec.Command("osascript", "-e", script).Run(); err != nil { dialogLogger().Warn("显示错误对话框失败", zap.Error(err)) } } func showAbout() { script := fmt.Sprintf(`display dialog "%s" buttons {"OK"} default button "OK" with title "%s"`, escapeAppleScript(aboutMessage()), escapeAppleScript(appAboutTitle)) if err := exec.Command("osascript", "-e", script).Run(); err != nil { dialogLogger().Warn("显示关于对话框失败", zap.Error(err)) } } func escapeAppleScript(s string) string { s = strings.ReplaceAll(s, "\\", "\\\\") s = strings.ReplaceAll(s, "\"", "\\\"") return s }