触れたアイテムのときにxib/storyboardなしでNSCollectionviewを作成していますが、collectionView:didSelectItemsAt:メソッドが呼び出されませんでした。 viewDidLoadで呼び出さz_setupView()()NSCollectionview didSelectItemsAtは呼び出されませんでした
///のinit collectionview
fileprivate func z_setupView() {
view.addSubview(topCollectionView)
topCollectionView.delegate = self
topCollectionView.dataSource = self
let flLayout = NSCollectionViewFlowLayout()
topCollectionView.collectionViewLayout = flLayout
topCollectionView.register(BannerCollectionItem.self, forItemWithIdentifier: "BannerCollectionItem")
topCollectionView.snp.remakeConstraints {[weak self] (make) in
make.top.equalTo((self?.view.snp.top)!).offset(10)
make.leading.equalTo(0)
make.trailing.equalTo(0)
make.height.equalTo(200)
}
}
}
//ここでは、SB、どのように私は、デリゲートの機能をXIBなしNSCollectionViewItem
class BannerCollectionItem: NSCollectionViewItem {
public var bannerModel: BannerAdModel? {
didSet {
adImageView.image = #imageLiteral(resourceName: "a_img_beijin")
adImageView.frame = NSRect(x: 0, y: 0, width: 80, height: 80)
}
}
fileprivate var adImageView = NSImageView()
override func viewDidLoad() {
super.viewDidLoad()
}
override func touchesBegan(with event: NSEvent) {
debugPrint("BannerCollectionItem touchesBegan")
}
override func loadView() {
self.view = NSView(frame: NSRect(x: 0, y: 0, width: 300, height: 200))
self.view.addSubview(adImageView)
}
}
呼び出すことができますか?ここ
を設定する必要があり、私のソリューションです:NSCollectionView項目がデフォルトで選択することができませんでした、私たちはcollectionviewを設定する必要があります 'isSelectable'は本当ですtopCollectionView.isSelectable = true –
最初のコード例を整理しようとしましたが、余分な中括弧があることが判明しました:) – Yana
コメントは答えではなく答えとして書くことができます;)@Geezher – Yana