Возврат позиции выбранной строки в NSOutlineView
У меня есть NSOutlineView, который при двойном щелчке строки в представлении структуры отображается NSPopover, используя следующий код:
-(void)doubleClick:(id)nid{
NSLog(@"Test double click");
[_popover showRelativeToRect:[nid bounds] ofView:nid preferredEdge:NSMaxXEdge];
}
Код работает нормально, но помещает всплывающее окно в середине вертикальной высоты контурного представления. Я бы хотел, чтобы всплывающее окно отображалось рядом со строкой, которая выбрана (дважды щелкнула) в виде структуры. Можно ли сделать вызов в Outline View для возврата позиции выбранной строки? Я не могу найти такой метод в документации. Ясно, что я бы заменил [nid bounds], который такой вызов. Иначе, любые другие предложения о том, как я мог бы обойти это, были бы оценены.
1 ответ
Не забывай это NSOutlineView
наследуется от NSTableView
, Ты ищешь -frameOfCellAtColumn:row:
, Столбец, вероятно, 0. Строка, которую вы можете получить с -selectedRow
,
Если ваш контурный вид основан на представлении, вы также можете передать представление строки (-rowViewAtRow:makeIfNecessary:
) а также NSZeroRect
для прямоугольника -showRelativeToRect:...
, поэтому он автоматически отслеживает строку.