NSTableView小ネタ

NSTableViewを利用するときの小ネタを2点。 ・特定の行が表示されるようにする ・現在表示されている行がどこなのかを取得 について記載。

・特定の行が表示されるようにする
-(void) scrollRowToVisible:(int)rowIndex
を利用する。

//カーソル位置を一行下に移動
- (void) scrollDown{
 pos++;
 [tableView scrollRowToVisible: currentPosition];
}

・現在表示されている行がどこなのかを取得
-(NSRange) rowsInRect:(NSRect)aRect
を利用する。 但し、NSTableViewはNSScrollViewに乗っかっているので、 単純にNSTableViewのサイズを入れてしまうと現在表示されている物が全て表示されてしまうので、
-(NSRect) visibleRect;
を利用して取得する。

- (NSRange) getDisplayItemRange{
    NSRect rect = [tableView visibleRect];
    return [tableView rowsInRect: rect];
}
Written on May 1, 2011