6

私はAppKitは初めてですが、UIKitは初めてです。
を使用しようとしていますが、NSTableViewプログラムでデータを入力したいと思います。

だから私は実装します

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
    return 1;
}

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
    return nil;
}

そして、InterfaceBuilderでクラスをデリゲートおよびデータソースとして設定しました。
numberOfRowsInTableView呼び出されますが、tableView:viewForTableColumn:row:呼び出されません。

追加した場合

-(id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{
    return @"toto";
}

これはと呼ばれます。

私が理解している場合、tableView:viewForTableColumn:row:はビューベースのテーブルtableView:objectValueForTableColumn:row:に対して呼び出され、セルベースのテーブルに対して呼び出されます。

テーブルがビューベースであることをどのように定義できますか?

編集 済み:わかりました...問題は、10.6を使用していて、tableView:viewForTableColumn:row:が10.7以降で使用できることです。つまり、10.7より前はセルベースのテーブルしかないということですか?

4

1 に答える 1

5

Interface Builder の Attributes インスペクター ペイン (Cmd-Opt-4) で、テーブル ビュー タイプを View Based に設定します。デフォルトではセルベースです。

左側のオブジェクト ビューで、またはエディタでクリックして、テーブル ビューを選択する必要があります。エディターで最初にクリックするとスクロール ビューが選択されるので、もう一度クリックしてテーブル ビュー オブジェクトを選択する必要があることに注意してください。

OS X 10.7 SDK、つまりビューベースのテーブル ビューを使用するには、Xcode 4.3 以降が必要だと思います。

于 2012-07-07T14:24:25.983 に答える