質問: Dismissメソッドはsenderという引数をとり、プログラマは(この場合、ウィンドウを閉じろという)メッセージの送信元を渡すようにコーディングしますが、Dismissメソッドはこの引数を何に使うのでしょうか? 関 https://developer.apple.com/documentation/appkit/nswindowcontroller/1531963-dismisscontroller https://docs.microsoft.com/ja-jp/xamarin/mac/user-interface/dialog リファレンスを見ると型はAnyとなっているので、渡された側としてもどういうメンバを持っているかわからない状態だと思います。 となると、ログに表示してデバッグの助けにするなどでしょうか?
回答: これはAppKitにおける Target-Action に深く関係します。 簡単に言うと `@IBAction` のついたメソッドは一つの参照型を受け取り戻り値を持たないメソッドでなければならないという決まりです。 Xibなどで例えばNSButtonにactionを設定したとしましょう。 この場合ボタンが押されたときシステムは引数として押されたNSButtonのインスタンスを渡してactionを実行します。 これがTarget-Actionにおける決まりです。 その引数がどのように利用されるのかはメソッドの利用側で考える必要はありません。 一般にXibなどでactionを設定するのではなく(つまりTarget-Actionを利用せず)、コードから直接呼び出す場合は、 ``` dismiss(nil) // 推奨 dismiss(self) ``` のいづれの方法で呼び出しを行っても構いません。