通常、AppleScriptObjC にはアプリケーション デリゲートが 1 つだけあります。ウィンドウを別の xib ファイルに含める必要があるかどうかの選択は、ウィンドウの目的によって異なります。ほとんどの開発者は、MainMenu.xib にウィンドウをまったく持たずに MainWindow.xib を作成することを好みます。または一部の開発者は、その場で UI を作成することを好みます。したがって、2 つ、1 つ、または 3 つの xib ファイルを使用してもあまり意味がありません。とにかく、すべてのウィンドウに xib を使用することをお勧めします。
シンプルに保ち、すべてを機能させるには:
- プロジェクトに新しいウィンドウを追加します (MainWindow.xib として保存しました)。
- ファイルの所有者のクラスを NSWindowController に設定します
- ウィンドウをファイルの所有者に接続し、それをウィンドウにします
- プロジェクトに新しい AppleScript を追加します (NSObject のサブクラス)
- ウィンドウの IBOutLet とアクションを記述します (以下を参照)。
- 新しい NSObject を xib ファイルに追加します
- NSObject (青い立方体) のクラスを新しい AppleScript オブジェクトに設定します
- ウィンドウを IBOutlets と IBActions に接続します。
- ウィンドウのデリゲートもスクリプトに接続します (青い立方体)
ウィンドウのスクリプト:
script mainWindow
property parent : "NSObject"
property myWindow : missing value
property myButton : missing value
on myButtonClicked:sender
log "I'm clicked"
end myButtonClicked:
end script
ウィンドウをロードするには、アプリのデリゲートに次のようなものが必要です。
set theController to current application's class "NSWindowController"'s alloc()'s init()
current application's class "NSBundle"'s loadNibNamed:"MainWindow" owner:theController
アプリケーション デリゲートにいて nib を適切にロードしたら、ウィンドウを閉じるだけtheController's close()
でウィンドウを表示theController's showWindow:me
できます。