がありNSTableView
、そのデータ ソースとデリゲートが設定されています。セルをカスタマイズしたいので、ライブラリからビューベースのセル ビューをドラッグしました。次に、特別なセルを完全に制御するために、ServiceCell
から継承するクラスを作成しました。NSTableCellView
その後、nib ファイルからセル クラスにコントロール ドラッグして、セル内IBOutlet
の画像とテキスト フィールドのプロパティを作成します。
NSTableView のデリゲート メソッドでは、次のように記述しました。
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
// Get a new ViewCell
ServiceCell *cellView = [tableView makeViewWithIdentifier:@"ServiceCell" owner:self];
NSLog(@"Field = %@", cellView.textField); //which turns out to be null!!!
if( [tableColumn.identifier isEqualToString:@"ServiceColumn"] )
{
cellView.serviceImage.image = nil;
cellView.nameLabel.stringValue = @"Hello";
return cellView;
}
return cellView;
}
ご覧のとおり、テキスト フィールドは null です。しかしmakeViewWithIdentifier:
、Interface Builder でセルを見つけて、アプリ ウィンドウにセルを表示しました。値を設定できないのはなぜですか?