2017-07-31 12 views
2

触れたアイテムのときに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) 

} 
} 

呼び出すことができますか?ここ

+1

を設定する必要があり、私のソリューションです:NSCollectionView項目がデフォルトで選択することができませんでした、私たちはcollectionviewを設定する必要があります 'isSelectable'は本当ですtopCollectionView.isSelectable = true –

+0

最初のコード例を整理しようとしましたが、余分な中括弧があることが判明しました:) – Yana

+0

コメントは答えではなく答えとして書くことができます;)@Geezher – Yana

答えて

3

は私のソリューションです:NSCollectionView項目がデフォルトで選択することができませんでした、私たちはここに

collectionview.isSelectable = true 
+0

あなたは答えを受け入れることもできます;)。それがあなたの問題を解決すれば。 – Yana

+0

okですが、今日私はこの回答を受け入れることができません( '。。 –

関連する問題