Возврат позиции выбранной строки в 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:..., поэтому он автоматически отслеживает строку.

Другие вопросы по тегам