Home > Cocoa | プログラミング | 未分類 > Document-based Applicationで起動時に自動的に新規書類を作らない方法

Document-based Applicationで起動時に自動的に新規書類を作らない方法

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メソッドを書いておく。

新規Objective-Cクラス

次にIBでMainMenu.nib(メインのnibファイル)を開いて、パレットからNSObjectをドラッグする。

Interface Builder 3.0ライブラリ

適当な名前(SQLiteDBController)をつけてInspectorからIdentity Inspectorを開いてClassに先ほど作ったクラス名「ApplicationController」を指定する。

Interface Builder 3.0インスペクタ

最後にFile’s Ownerから線を伸ばしてさきほど作ったクラス(SQLiteDBController)に接続し、delegateとして指定する。

Interface Builder 3.0でdelegate設定

以上で自動的に新しいファイルを作成しなくなる。

Comments:0

Comment Form
Remember personal info

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 週刊(月刊?)プレカリアート

Home > Cocoa | プログラミング | 未分類 > Document-based Applicationで起動時に自動的に新規書類を作らない方法

Search
Feeds
Meta

Page Top