Потребитель QuickLook в качестве делегата от NSViewController

у меня возникли некоторые проблемы с реализацией функциональности QuickLook из таблицы в NSView . Ограниченная документация по QuickLook ] действительно не помогает.

Прочитав Документы Apple (которые в значительной степени ориентированы на настраиваемые генераторы и плагины), В конце концов я посмотрел на пример кода QuickLookDownloader . Этот код основан на приложении на основе документов, но мне кажется, что это правильный метод (в конце концов, это код Apple, и он действительно работает в их проекте).

В моей реализации я могу получить QuickLook панель отображается нормально, и я могу ее так же легко закрыть. Однако сама панель никогда не вызывает методы делегата из моего NSViewController . В результате у меня даже не получается отображать объекты, только формулировка «Элементы не выбраны» . И я в тупике.

Я попытался вызвать setDelegate , но меня предупредили о надвигающейся гибели, если я продолжу идти по этому маршруту ...

но мне кажется, что это правильный метод (в конце концов, это код Apple, и он действительно работает в их проекте).

В моей реализации я могу заставить панель QuickLook отображаться нормально, и Я могу так же легко отказаться от этого. Однако сама панель никогда не вызывает методы делегата из моего NSViewController . В результате у меня даже не получается отображать объекты, только формулировка «Элементы не выбраны» . И я в тупике.

Я попытался вызвать setDelegate , но меня предупредили о надвигающейся гибели, если я продолжу идти по этому маршруту ...

но мне кажется, что это правильный метод (в конце концов, это код Apple, и он действительно работает в их проекте).

В моей реализации я могу заставить панель QuickLook отображаться нормально, и Я могу так же легко отказаться от этого. Однако сама панель никогда не вызывает методы делегата из моего NSViewController . В результате у меня даже не получается отображать объекты, только формулировка «Элементы не выбраны» . И я в тупике.

Я попытался вызвать setDelegate , но меня предупредили о надвигающейся гибели, если я продолжу идти по этому маршруту ...

Однако сама панель никогда не вызывает методы делегата из моего NSViewController . В результате у меня даже не получается отображать объекты, только формулировка «Элементы не выбраны» . И я в тупике.

Я попытался вызвать setDelegate , но меня предупредили о надвигающейся гибели, если я продолжу идти по этому маршруту ...

Однако сама панель никогда не вызывает методы делегата из моего NSViewController . В результате у меня даже не получается отображать объекты, только формулировка «Элементы не выбраны» . И я в тупике.

Я попытался вызвать setDelegate , но меня предупредили о надвигающейся гибели, если я продолжу идти по этому маршруту ...

[QL] QLError (): - Вызывается [QLPreviewPanel setDelegate:], пока на панели нет контроллера - Исправьте это, или это скоро появится. m отсутствует, но после анализа образца кода и просмотра документации я не вижу ответа.

Это потому, что все это происходит из NSViewController (хотя я не вижу причин, почему это должно вообще входить в уравнение) ?

Любая помощь очень ценится.

ОБНОВЛЕНИЕ РЕШЕНИЯ

Благодаря наблюдениям Питера, исправление было быстрым. Разве вы не ненавидите, когда сообщение об ошибке в отладчике означает то, что написано? : -)

В моем классе, который загрузил MyViewController , мне просто нужно было добавить три строки кода, чтобы решить проблему.

// mainWindow is an IBOutlet to my window because the calling class 
// is a simple object and not an NSWindowController otherwise I could
// have used `self` instead of `mainWindow`

NSResponder * aNextResponder = [mainWindow nextResponder];

[mainWindow setNextResponder:myViewControllerInstance];
[myViewControllerInstance setNextResponder:aNextResponder];

Работа выполнена :-) Спасибо, Питер.

10
задан Hooligancat 1 October 2010 в 23:22
поделиться