SwiftUI
ui.SwiftUI 在 Go 应用中嵌入真正的 macOS 控件。普通 QuickGUI 组件不需要它。
#Host
在 ui.SwiftUI.Host 内创建控件。Host 是原生视图边界,可以根据内容调整自身尺寸。
func SwiftUiHostExample() *ui.Element {
return ui.SwiftUI.Host(
ui.SwiftUIHostProps{MatchContents: true},
func() *ui.Element {
return ui.SwiftUI.Button(ui.SwiftUIButtonProps{Label: "Continue"})
},
)
}#原生控件
Button、Slider、Toggle、ProgressView、Stepper、TextField、SecureField、Picker、SegmentedControl、DatePicker、ColorPicker 和 Gauge。外观和行为与系统控件一致。
#受控值
绑定信号,并从原生回调中保存值。SwiftUI 控件和 QuickGUI 视图可以共享同一个信号。DatePicker 使用毫秒级 Unix 时间戳。
func SwiftUiToggleExample() *ui.Element {
on, setOn := ui.CreateSignal(true)
return ui.SwiftUI.Host(
ui.SwiftUIHostProps{MatchContents: true},
func() *ui.Element {
return ui.SwiftUI.Toggle(ui.SwiftUIToggleProps{
IsOn: on,
Label: "Notifications",
OnIsOnChange: func(next bool, _ *native.Event) { setOn(next) },
})
},
)
}#尺寸
MatchContents: true 会根据控件同时决定两个轴的尺寸。只要固有高度时,使用 ui.SwiftUIMatchContents{Vertical: true},宽度自行设置。
ui.SwiftUIHostProps{
MatchContents: ui.SwiftUIMatchContents{Vertical: true},
PartProps: ui.PartProps{Style: ui.Style().Width(320)},
}#平台支持
SwiftUI 托管需要 macOS。外观可能随操作系统版本变化。
