2016-05-20 5 views
0

Я реализую NSBrowser в Swift и хочу отображать контроллер просмотра предварительного просмотра, когда в браузере выбраны определенные элементы листа.NSBrowserDelegate не запрашивает контроллер предварительного просмотра

Я реализовал метод func browser(browser: NSBrowser, previewViewControllerForLeafItem item: AnyObject), но он никогда не вызывается.

Я также реализует следующие методы делегата:

func browser(sender: NSBrowser, numberOfRowsInColumn column: Int) 
func browser(sender: NSBrowser, willDisplayCell cell: AnyObject, atRow row: Int, column: Int) 
+0

Вы реализовали браузер func (браузер: NSBrowser, isLeafItem item: AnyObject?) -> Bool'? – Willeke

+0

@Willeke Я пробовал, но его никогда не называют. Поэтому я устанавливал свойство .leaf для NSBrowserCell в методе делегата willDisplayCell: .... – Ricky

ответ

0

previewViewControllerForLeafItem необходим элемент. Документация NSBrowser может быть лучше, но это говорит о previewViewControllerForLeafItem:

Этот метод вызывается только если делегат реализует методы источника данных элементов.

Методы исходных элементов данных rootItemForBrowser, numberOfChildrenOfItem, child ofItem, isLeafItem и objectValueForItem.

+0

Спасибо, я видел это в документации, но не мог определить, какие были требуемые методы. – Ricky