性格いい人が優勝

CocoaのNSTableViewについて

CocoaのNSTableViewではまっています。

<環境>
OS: Mac OS X(10.5.8)
XCode: 3.0 (IDE: 921.0, Core: 921.0, ToolSupport: 893.0)

以下の手順で作業をしました。
(1) Interface Builderで「ライブラリ」から、「Object」をMyDocument.nibにドラッグ&ドロップし、
クラス名をMyControllerとする
(2) 上記MyControllerをクラスファイルに出力(メニューから「File」ー「Write Class File」)
(3) ウィンドウにテーブルビューを配置して、データソースをMyControllerに接続
→ テーブルビューの右クリックで「Outlets」ー「dataSource」が「MyContoller」になっている
(4) テーブルビューの識別子を設定する
「Table Column Attribute」の「Identifier」で設定
→ とりあえず「Column1」,「Column2」とする(2列設定)
(5) XCodeで、MyControllerに以下を実装(ヘッダは省略)
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
return 1;
}

- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(NSInteger)rowIndex
{
if([[aTableColumn identifier] isEqual:@"Column1"]){
// 1列目
return @"AAAA";
}
else
{
// 2列目
return @"BBBB";
}
}

※参考URL
http://take-blizzard.cocolog-nifty.com/blog/2009 …

こうすると、Windowが表示されたときに、テーブルビューに1行「AAAA, BBBB」という行が表示されると思っていますが
表示がなされませんでした。
「Document based Application」で作成していますが、新しいウィンドウを開いても何も表示されません。
また、aTableViewにブレークポイントを張っていますが、止まることはありませんでした。


上記に関して以下の質問です。
<1> AppControllerの実体(インスタンス?)は、データソースの接続を行っているので自動で生成されるということでよいのでしょうか?
それとも、どこかで自分でallocが必要でしょうか?
<2> 上記のようにデータソースとして接続したクラスの中でブレイクポイントで止めることは可能でしょうか?

そのほか、上記でおかしい点/作業の不足点があればご指摘いただけないでしょうか?

以上、よろしくお願いいたします。

A 回答 (1件)

どこにも問題はないように見受けられます。


おそらく、スペルミスとか、Interface Builderで接続しているつもりだったものが、できていないとか、そういうイージーミスが、思い通りに行かない原因ではないでしょうか?

正常なプログラムなら、ブレークポイントも、ちゃんとそこで止まってくれますよ。

この回答への補足

再度確認してみましたが、やはりNGでした。

確認の結果
・MyController の親クラスがNSTableViewだったので、NSObjectにしました。

接続も、上記の通り「Outlets」の項目で接続を確認しました。

スペルミスについてですが、例えば列のIdentifierが誤っていたとしても、tableViewメソッドでelse節に落ちるので「何も出ない」という状況にはならないのでは?と考えています。

その他に、「この辺確認してみろ!」というようなアドバイスがあればご教示いただけますでしょうか?
よろしくお願いいたします。

補足日時:2010/06/08 22:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!