Я пытаюсь отобразить NSPopover
с дополнительной информацией для выбранной строки NSTableView
. Для этого мне нужно получить ссылку на представление представления выбранной строки, чтобы я мог «прикрепить» к нему мой поповер:
NSInteger row = [[self membersTableView] selectedRow];
NSTableRowView *aView = [[self membersTableView] rowViewAtRow: row makeIfNecessary: YES];
[self setQuickLookPopoverController: [QuickLookPopoverController showPopoverFor: anObject at: aView]];
В приведенном выше примере aView
всегда равен нулю. Согласно документации Apple , это способ получения объекта вида по заданной строке. Особенно последнее предложение обсуждения немного странно:
Обсуждение Этот метод сначала попытается вернуть текущий
отображаемый вид в видимой области. Если нет видимого вида, и
makeIfNeeded это YES, подготовленное временное представление возвращается. Если
makeIfNe Необходимое НЕТ, и представление не видимо, ноль будет
вернулся.
Как правило, makeIfNeeded должно быть ДА, если вам требуется
вид, и НЕТ, если вы хотите обновить свойства только в том случае, если
оно доступно (обычно это означает, что оно видно).
Будет сгенерировано исключение, если строка не входит в число NumberOfRows.
возвращаемый результат, как правило, не должен храниться дольше, чем
текущий цикл цикла выполнения. Лучше позвонить
rowViewAtRow: makeIfNeeded: всякий раз, когда требуется представление ..
Почему этот метод всегда возвращает ноль?