• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CocoaのNSTableViewについて)

CocoaのNSTableViewの使い方と問題解決方法

このQ&Aのポイント
  • CocoaのNSTableViewを使ってウィンドウにテーブルビューを表示する方法について解説します。
  • テーブルビューのデータソースとして接続したクラスの中でブレイクポイントを設定する方法についても紹介します。
  • 問題解決方法として、データソースの接続やクラスの作成について注意すべき点をまとめました。

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

どこにも問題はないように見受けられます。 おそらく、スペルミスとか、Interface Builderで接続しているつもりだったものが、できていないとか、そういうイージーミスが、思い通りに行かない原因ではないでしょうか? 正常なプログラムなら、ブレークポイントも、ちゃんとそこで止まってくれますよ。

darum
質問者

補足

再度確認してみましたが、やはりNGでした。 確認の結果 ・MyController の親クラスがNSTableViewだったので、NSObjectにしました。 接続も、上記の通り「Outlets」の項目で接続を確認しました。 スペルミスについてですが、例えば列のIdentifierが誤っていたとしても、tableViewメソッドでelse節に落ちるので「何も出ない」という状況にはならないのでは?と考えています。 その他に、「この辺確認してみろ!」というようなアドバイスがあればご教示いただけますでしょうか? よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Objective-C, Cocoaアプリ

    こんにちわ。初歩的な質問ですが、Objective-C, Cocoa Application両方とも初心者です。ボボタンを押すことで、NSTableViewに新しいデータを追加したいのですが、 デバッグして、データ自体はちゃんとデータソースの方に追加されているのですが、TableViewが表示していないようです。 reloadData, setNeedsDisplayも両方ためしたのですが、表示されません。 ちなみに、新しいデータを追加する関数ですが、tableViewがロードされる前にコールしたときはちゃんと新しいデータがtableViewに表示されています。 コードです。 ****************** dataはNSMutableArrayでItemInfoというクラスのArrayです。(ItemInfoは単純にNSString* nameとint priceの2つのデータを持っているクラスです。) この関数はすべてNSViewControllerのメンバ関数です。 -------コード---------- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if(self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]){ data = [[NSMutableArray alloc]initWithCapacity:5]; [data addObject:[[ItemInfo alloc]initWithName:@"Item1" price:100]]; [self addNewItem:nil]; //ここでのaddNewItemは反映され、TableViewには合計2つのデータが表示されています。 } return self; } -(IBAction)addNewItem:(id)sender { //ここはボタンを押したときにちゃんと実行されているのを確認しています。 //実際にdataにも新しいデータが追加されていることをデバッガで確認済みです。 ItemInfo *newItem = [[ItemInfo alloc]initWithName:@"NewItem" price:300]; [data addObject: newItem]; [tableView reloadData]; } #pragma mark - #pragma mark Table View Datasource - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return [data count]; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { //tableView には2つのColumnがあり、一つ目はItemInfo内のnameを、2つ目にはpriceを表示しています。 if([aTableColumn.identifier isEqual:@"Item"]){ return [[data objectAtIndex:rowIndex] name]; }else if([aTableColumn.identifier isEqual:@"Price"]){ return [NSString stringWithFormat:@"%d", [[data objectAtIndex:rowIndex] price]]; } return nil; } ------コード終わり------ 開発環境は以下の通りです。 OS: MacOSX10.6 SnowLeopard Xcode Version3.2.4 Cocoa Application

  • cocoaアプリで悩んでます。

    cocoaアプリで悩んでます。 よろしくお願いします。 Mac初心者です。 現在、cocoaAPI、Xcode3.0、InterfaceBuilder3.0(以下IB)を使ってアプリケーションを作っています。 <アプリ概要> <1>実行時に現れるダイアログにhtmlファイルをドラッグ&ドロップで貼り付けて表示。 <2>そのファイルがあるフルパスを表示。 <現状> 上記内容は実装できたのですが、<1>から<2>に進むためには設置したボタンをクリックしなければいけないような仕様になっています。 これをドラッグ&ドロップした時点で<2>の状態に進むようにしたいのです。 できるだけIBを利用したいと思っています。 WebViewクラスにはDownloadDelegate等のデリゲートが準備されているので、これを使うべきなのかなと思っているのですが、IB上で設置したインスタンスからデリゲートをどのように設定するのか、設定されたデリゲートに対するメッセージをどのように活用するのか(メソッドの引数には受け取ったメッセージを記述すべき?、どう書けば良いのか?、等)よく理解できていません。 デリゲートでメッセージを受け取った側のクラスのメソッドはどのように書けば良いかサンプルコードを記述して頂けるのであればうれしい限りです。 どうぞよろしくお願いしいます。

  • ACCESSのテーブルの行と列を入れ替えたい

    Access2000を使っているのですが、テーブルの行と列を入れ替えて、Excelへエクスポートを試みています。 しかし、Excelへのエクスポートのやり方は解るのですが、テーブルの行と列を入れ替えるやり方が解りません。 具体的には ID| 年月 |用件 01|2005/03|aaaa 02|2005/04|bbbb 03|2005/05|cccc とあるのもを ID  01 02 03 年月 2005/03 2005/04 2005/05 用件 aaaa bbbb cccc というふうに変換したいです。 よろしくお願いします。

  • エクセルで教えて下さい。

    エクセルで教えて下さい。 オートフィルタ、ピボットテーブル以外で関数などで教えて下さい。 A列に大量の文字列があり重複したりしてます。 そこで、 B列にはA列にある大量の文字列を重複なしで表示させたいと思ってます。 例えば A列 B列 AAAA AAAA BBBB BBBB AAAA CCCC CCCC DDDD DDDD EEEE DDDD FFFF EEEE FFFF EEEE AAAA みたいな感じです。A列は編集可能でQQQQを追加すれば自動でB列にも表示させたいです。 このようなことを簡単にできますでしょうか? 宜しくお願いします。

  • ACCESSのフォーム上に連番番号を表示したい

    お世話になります フォームは単票型でなく、表型です↓ 例 1 aaaa1 bbbb1 cccc1 2 aaaa2 bbbb2 cccc2 3 aaaa3 bbbb3 cccc3 aaaa1等、右側はテーブルからデータを表示しています この、左の1,2,3、は単なる、表示で関連付けるデータは ありません この単なる1,2,3、はどのようにだすのですか よろしくお願いします

  • 別テーブルの行数を利用してソートしたい

    MySQLバージョン4.1.16を使用しています。 テーブル「tbl1」をテーブル「tbl2」の「msg」カラムの行数を利用して ソートしたいのですが、どのようなSQL文になるのでしょうか? 以下の例だと、tbl2のuser_idがbbbbのmsg数の方が多いので descで並べるとtbl1はbbbb、aaaaの順になるようにしたいです。 テーブル「tbl1」 +----------+ | user_id   | +----------+ |  aaaa   | +----------+ |  bbbb   | +----------+ テーブル「tbl2」 +----------+---------+ |  user_id  |  msg  | +----------+---------+ |  bbbb   |  ああ  | +----------+---------+ |  aaaa   |  いい  | +----------+---------+ |  bbbb   |  うう   | +----------+---------+ SELECT * FROM tbl1 INNER JOIN tbl2 ON tbl1.user_id = tbl2.user_id ORDER BY (ここの部分が知りたいです、または全く違う文になるのでしょうか?) desc

    • ベストアンサー
    • MySQL
  • 同じテーブル内同士で更新したい

    MySQLバージョン4.1.16を使用しています。 同じテーブル内で、user_idが「aaaa」のnumカラム値を 「bbbb」のnumカラム値でupdateしたいのですが、 次のようなsqlだとエラーが出てしまいます・・・ なんとかしてできる方法はないでしょうか? $sql = "UPDATE users SET num = (SELECT num FROM users WHERE user_id = 'bbbb') WHERE user_id = 'aaaa'"; Error Number: 1093 You can't specify target table 'users' for update in FROM clause テーブル「users」 +----------+---------+ |  user_id  |  num  | +----------+---------+ |  aaaa   |   1   |←成功すれば2になる +----------+---------+ |  bbbb   |   2   | +----------+---------+

  • エクセルについての質問。

    エクセルの関数に関して質問があります。 |10001|AAAA|10002|BBBB| |10002|BBBB|10004|DDDD| |10003|CCCC|10004|DDDD| |10004|DDDD|10001|AAAA| |10005|EEEE|10005|EEEE| ちょっと分かりにくいですが 一番上の行ですと、 列A=10001 列B=AAAA 列C=10002 列D=BBBB と考えて下さい。 質問です。 --------------------------- 列Cの数値を列Aから検索して 同じのがあれば列Bの数値を列Dに表示する。 --------------------------- この関数を教えて頂けませんでしょうか? 宜しくお願い致します。

  • 【javadoc】パッケージを一括で出力

    お世話になります。 現在、開発済みのJavaソースに対しjavadocを コマンドラインより作成しています。 その際、 aaaa.bbbb.c1 aaaa.bbbb.c2 aaaa.bbbb.c3 などのパッケージ群に対し javadoc -d JDoc aaaa.bbbb.c1 aaaa.bbbb.c2 aaaa.bbbb.c3 のような指定で作成していますが パッケージ数がちょっと多いので、まとめて javadoc -d JDoc aaaa.bbbb.* のような指定で作成したいのですが、上記をためしたら失敗してしまいました。 こういった形でのjavadocの出力は どのように指定したらよいのでしょうか? わかりにくい説明で申し訳ありませんが よろしくご解答のほど、お願いいたします。

    • ベストアンサー
    • Java
  • access で 方法を教えてください。

    access で 方法を教えてください。 テーブルは セミコロン区切りで、区切られて表示されています (テーブル例)  1 aaaa;bbbb;cccc;dddd;eeee;ffff 2000byte 2 aaaa 300byte 3 bbbb;cccc;ffff 3000byte 4 ffff;dddd 120byte このセミコロン区切りの区切られたデータの 「件数」と「バイト」を表で表示させる方法を教えて欲しいのです。 上記テーブル例を使用しての(抽出例)  抽出条件    ↓   aaaa 2件 2500byte   bbbb 2件 5000byte  cccc 2件 5000byte   dddd 2件 2120byte   eeee 1件 2000byte   ffff 3件 5120byte 宜しくお願いします。