2014-08-31 5 views
0

У меня есть NSOutlineView, который, когда строка в режиме структуры является двойным щелчком, NSPopover отображается, используя следующий код:Возврата положение выбранной строки в NSOutlineView

-(void)doubleClick:(id)nid{ 
    NSLog(@"Test double click"); 
    [_popover showRelativeToRect:[nid bounds] ofView:nid preferredEdge:NSMaxXEdge]; 
} 

код работает нормально, но помещает popover в середине вертикальной высоты контура. Я хотел бы, чтобы всплывающее окно появлялось рядом со строкой, которая выбрана (дважды нажата) в виде схемы. Есть ли вызов, который я могу сделать в Outline View, чтобы вернуть позицию выбранной строки? Я не мог найти такой метод в документации. Ясно, что я заменил бы [nid bounds], какой такой вызов. Кроме того, любые другие предложения о том, как я мог бы обойти это, будут оценены.

ответ

0

Не забывайте, что NSOutlineView наследует от NSTableView. Вы ищете -frameOfCellAtColumn:row:. Столбец, вероятно, равен 0. Строка, которую вы можете получить с помощью -selectedRow.

Если контурный вид вид на основе, можно также передать представление строки (-rowViewAtRow:makeIfNecessary:) и NSZeroRect для прямоугольника в -showRelativeToRect:..., поэтому он автоматически отслеживает строку.

+0

Это точно, что я был после. Спасибо, Кен, очень благодарен! – user3932488