itok's Lab

昔の開発ネタを記録として残してます

table の特定行を再描画

テーブルネタが続きますけれど、NSTableView でデータを読み込むのは reloadData: があって、NSOutlineView だとこれにくわえて reloadItem: っていうのがあるわけですが、データの読み込みというよりは特定の行に対して単なる再描画を行いたい場合は、これ。

// NSTableView
-(void) drawRow:(int)rowIndex clipRect:(NSRect)clipRect

column と clipRect の交差部分が再描画されるんで、行を丸ごと再描画したければ、そのテーブルの bounds でも渡してあげればOK。

[table drawRow:rowIndex clipRect:[table bounds]];

binding のおかげでデータとテーブルの連動はお任せなんだけれど、ちょっと cell を再描画したい、とかいう時に便利。