Cocoa Document-based Applicationのプロジェクトを作って「ビルドして進行」を押すとウィンドウが現れる。これはMyDocument(クラスとnib)のためのウィンドウである。最近のアプリケーションは起動するとウィンドウを自動的に開くものが多い(テキストエディタとか)けれど、そうでない方がいいものもある(例えば画像ビューア)。さて、どうすればいいのだろう?
ポイントを先に書いてしまうと
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender {
return NO;
}
をdelegateしてしまればOKである。
しかし、Interface Builder 3.0ではインターフェースがずいぶん変わっていてやり方がわからないので試行錯誤してみた。IB 2.0までならIBでNSObjectのサブクラスを作ってインスタンス化してファイルとして書き出してコードを編集する。IB 3.0ではどうするのだろう?
どうもIB 3.0では先にXcodeでクラスを作る必要があるようだ。まずXcodeのファイルメニューから「新規ファイル」を選び「Cocoa→Objective-C class」を選ぶ。とりあえず名前は「ApplicationController」とでもしておく。ApplicationController.mには上記のapplicationShouldOpenUntitledFileメソッドを書いておく。
次にIBでMainMenu.nib(メインのnibファイル)を開いて、パレットからNSObjectをドラッグする。
適当な名前(SQLiteDBController)をつけてInspectorからIdentity Inspectorを開いてClassに先ほど作ったクラス名「ApplicationController」を指定する。
最後にFile’s Ownerから線を伸ばしてさきほど作ったクラス(SQLiteDBController)に接続し、delegateとして指定する。
以上で自動的に新しいファイルを作成しなくなる。
Comments:0
Trackback+Pingback:0
- TrackBack URL for this entry
- http://blog.neoneet.jp/2008/04/23/document-based-application%e3%81%a7%e8%b5%b7%e5%8b%95%e6%99%82%e3%81%ab%e8%87%aa%e5%8b%95%e7%9a%84%e3%81%ab%e6%96%b0%e8%a6%8f%e6%9b%b8%e9%a1%9e%e3%82%92%e4%bd%9c%e3%82%89%e3%81%aa%e3%81%84%e6%96%b9/trackback/
- Listed below are links to weblogs that reference
- Document-based Applicationで起動時に自動的に新規書類を作らない方法 from 週刊(月刊?)プレカリアート


















