本文へスキップ

ウィンドウとネイティブサービス

main から native.Run を 1 回呼び出します。起動コールバックがウィンドウを作り、アプリケーションのハンドラーを登録します。

#ウィンドウのライフタイム

native.NewWindow は、独自のコンポーネントを持つウィンドウを作ります。ウィンドウを閉じるとその UI は破棄されます。あとのコールバックでウィンドウハンドルが必要なら、コンポーネントの構築中に native.CurrentWindow() をキャプチャしてください。

Dock アイコンは native.App.OnReopen で扱い、表示中のウィンドウがないときに新しいウィンドウを開きます。

#コマンドとサービス

ダイアログ、クリップボード、シェル、外観、メニュー、通知、その他のプラットフォーム機能には、型付きの native API を使います。結果を返す操作は完了コールバックを使います。ブロックせず、そこでエラーを処理してください。トレイアイコンはトレイアイコンを参照してください。

バックグラウンドの作業では、ui.Async はコンポーネントが破棄されるとキャンセルします。native.Dispatch は結果を UI ゴルーチンへ戻します。シグナルの読み書きはそこでだけ行います。

独立したネイティブパッケージは native.InvokeExtension と native.OpenExtension を使います。拡張の作成を参照してください。

#イベントとファイル監視

native.WatchFiles(paths, changed, ready) は OS の通知を使い、停止関数を返します。コンポーネントが所有するウォッチャーでは、停止関数を ui.OnCleanup に登録します。ポーリングより、ネイティブのイベントまたはウォッチャーを優先してください。