「Xamarin.Mac/NSApplicationのサブクラスを使う」の版間の差分

編集の要約なし
 
(同じ利用者による、間の1版が非表示)
26行目: 26行目:
         {
         {
             base.AwakeFromNib();
             base.AwakeFromNib();
            this.Delegate = new AppDelegate();
         }
         }


39行目: 40行目:
</source>
</source>


===Info.plistに「Principal class」を設定する===
===MainMenu.xibを追加する===
Info.plistを開き、Xamarin Studio下部の「ソース」タブを選択する。Info.plistがない場合はファイルを追加する(新規追加ダイアログでは「Application Manifest」という名称になっているはず)。
MainMenu.xibが既にある場合はそのまま。MainMenu.xibがない場合はファイルを新規作成する。Xamarin Studioの新規作成ダイアログでは「Main Menu」という名称になっているはず。


プロパティの一覧が列挙されるので、プロパティ「Principal class」に「String」型で前述のRegister属性で付けた名前を入力する(この例であれば「App」)。プロパティ「Principal class」がない場合はリスト下部の「Add new entry」を選べば新しい行が追加される。
===Info.plistを設定する===
Info.plistが既にある場合はそのまま。Info.plistがない場合はファイルを新規作成する。Xamarin Studioの新規作成ダイアログでは「Application Manifest」という名称になっているはず。
 
Info.plistを開き下部にある「ソース」タブを選択する。するとプロパティの一覧が列挙されるので以下の値を設定する。プロパティに目的の項目がない場合はリスト下部の「Add new entry」を選べば新しい行が追加される。
 
*Principal class(String型)→ 前述のRegister属性で付けた名前を入力する(この例であれば「App」)
*Main nib file name(String型)→ MainMenu


===エントリポイントを書き換える===
===エントリポイントを書き換える===
エントリポイントを以下のように書き換える。なおXamarin Studioで「空のプロジェクト」を作ると最初からでこんな感じになっている。
Xamarin Studioで「空のプロジェクト」を作ると初期値でこんな感じになっている。
<source lang="csharp">
<source lang="csharp">
     static class MainClass
     static class MainClass
60行目: 67行目:
</source>
</source>


「空のプロジェクト」ではなく「Cocoa」を選ぶと最初からこうなっている。
 
これを以下のように書き換える。なお「空のプロジェクト」ではなく「Cocoa」を選ぶと最初からこうなっている。
<source lang="csharp">
<source lang="csharp">
     using System;
     using System;
74行目: 82行目:
     }
     }
</source>
</source>
ちなみにNSApplication.Mainはアップル公式のドキュメントによると以下のような意味らしい。nibファイルの読み込みがビックなお世話だね。
<source lang="objc">
void NSApplicationMain(int argc, char *argv[]) {
    [NSApplication sharedApplication];
    [NSBundle loadNibNamed:@"myMain" owner:NSApp];
    [NSApp run];
}
</source>


==関連項目==
==関連項目==