メインメニューを開く

差分

MonoMac/Preferencesウインドウを付ける

2,885 バイト追加, 2015年2月4日 (水) 03:36
ページの作成:「MonoMacMacのアプリで定番のPreferences(設定画面)を実装する。 ==実装1== ===プロジェクトにPreferencesWindowを追加する=== *「...」
[[MonoMac]]で[[Mac]]のアプリで定番のPreferences(設定画面)を実装する。

==実装1==
===プロジェクトにPreferencesWindowを追加する===
*「追加」→「新しいファイル」でファイル追加ダイアログを表示する。
*「Cocoa Window with Controller」を選び、名前を「PreferencesWindow」にする(名前は何でもよい)。

===PreferencesWindow.xibの基本設定をする===
*Preferences.xibを開く(Interface Builderが起動する)
*ウインドウを選択した状態でアトリビュートインスペクターを開き、以下のチェックボックスを外す
** Visible At Launch
** Release When Close
*ついでにTitleも「○○環境設定」など分かりやすい名前に変えておくとよい

以上が終わったらInterface Builderを閉じる。

===MainMenu.xibに操作を追加する===
*MainMenu.xibを開く(Interface Builderが起動する)
*アシスタントエディターを開く
*ソースコード側で「AppDelegate.h」を開く
*デザイナー側で「MacCocoaApp」→「Preferences」を表示させ、キーボードのCtrlを押しながらマウスをソースコード側へドラッグする
*ダイアログが開くので以下のように設定する
** Connection → Action
** Name → ShowPreferencesWindow (メニュー項目が押されたときに呼ばれるメソッド名なので何でもよい)

以上が終わったらInterface Builderを閉じる。Interface Builderを閉じることでXamarin Studio側に対応するソースコードが自動的に生成される。

===AppDelegate.csに処理を追加する===
前述の操作でAppDelegate.csに[[部分メソッド]]が準備された状態になっているので中身を書いてやる。AppDelegate.csを開き、[[Xamarin Studio]]の[[テキストエディタ]]上で「partial」と[[タイピング]]すれば[[インテリセンス]]が働き「 partial void ShowPreferencesWindow(NSObject sender)」などと出てくるはず。
<source lang="csharp">
public partial class AppDelegate : NSApplicationDelegate
{
// 〜〜中略〜〜

PreferencesWindowController preferencesWindowController;

partial void ShowPreferencesWindow(NSObject sender)
{
if (preferencesWindowController == null)
{
preferencesWindowController = new PreferencesWindowController();
}
preferencesWindowController.ShowWindow(this);
}
}
</source>

なお、上記の例では[[モーダルウインドウ]]にはなっていないので注意すること。[[モーダルウインドウ]]にしたい場合は下記を参照して書き換える。
*[[MonoMac/モーダルウインドウを作成する]]

==関連項目==

==参考文献==
{{reflist}}

{{stub}}

[[category:MonoMac]]
匿名利用者