2017-01-02 2 views
0

От https://developer.apple.com/reference/appkit/nscollectionviewsectionheaderview/1644266-sectioncollapsebutton:Электропроводка sectionCollapseButton в NSCollectionViewSectionHeaderView

Для лучшего пользовательского опыта, установите это свойство на кнопку, которая позволяет пользователям контролировать Сворачивание секции таким образом, чтобы вид коллекции может показать и скрыть кнопку соответственно, в зависимости от того, могут ли элементы раздела отображаться в доступном пространстве. В представлении коллекции используется свойство toggleSectionCollapse (_ :) для доступа к этой кнопке .

Не знаете, как установить эту кнопку. Вот мой класс:

import Cocoa 

class HeaderView: NSView, NSCollectionViewSectionHeaderView, NSCollectionViewElement { 

@IBOutlet weak var collapseButton: NSButton! 
... 
} 

Если я пытаюсь:

var sectionCollapseButton: NSButton?{ 
    return collapseButton 
} 

Тогда я получаю предупреждение:

вар 'sectionCollapseButton' почти соответствует факультативное требование 'sectionCollapseButton' протокола «NSCollectionViewSectionHeaderView»

Это также невозможно сделать это таким образом:

override func awakeFromNib() { 
    sectionCollapseButton = collapseButton 

    super.awakeFromNib() 

    self.sectionCollapseButton = collapseButton 
} 

И это также невозможно подключить его с помощью IB, потому что нет такой ссылки на выходе.

ответ

0

При подключении кнопки из IB, просто назвать выход sectionCollapseButton вместо collapseButton, и убедитесь, что декларация вставлено Xcode соответствует подписи в NSCollectionViewSectionHeaderView:

@IBOutlet unowned(unsafe) optional var sectionCollapseButton: NSButton? 
+0

Существует ошибка компилятора * «бесхозных» может только применяется к классам и классам связанных типов, а не «NSButton?» * – Shmidt

+0

Даже если я изменю его на слабые, что позволит мне подключить его к IB, это тоже не сработает. – Shmidt

Смежные вопросы