KMQucikToolsView.swift 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // KMQucikToolsView.swift
  3. // PDF Master
  4. //
  5. // Created by lizhe on 2023/10/27.
  6. //
  7. import Cocoa
  8. class KMQucikToolsView: KMBaseXibView {
  9. @IBOutlet weak var collectionView: NSCollectionView!
  10. var data: [KMQucikToolsModel] = []
  11. override func draw(_ dirtyRect: NSRect) {
  12. super.draw(dirtyRect)
  13. // Drawing code here.
  14. }
  15. override func setup() {
  16. //设置代理
  17. let layout = NSCollectionViewFlowLayout()
  18. layout.scrollDirection = .horizontal
  19. layout.minimumLineSpacing = 10
  20. layout.minimumInteritemSpacing = 10
  21. // 设置布局到 NSCollectionView
  22. self.collectionView.collectionViewLayout = layout
  23. self.collectionView.delegate = self
  24. self.collectionView.dataSource = self
  25. //是否可选中
  26. self.collectionView.isSelectable = true
  27. //注册cell
  28. self.collectionView.register(KMQucikToolCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMQucikToolCollectionViewItem"))
  29. // self.backgroundColor(KMAppearance.Layout.l0Color())
  30. }
  31. override func reloadData() {
  32. self.data.removeAll()
  33. for type in KMQucikToolsModel.showType() {
  34. self.data.append(KMQucikToolsModel.init(type: type))
  35. }
  36. self.collectionView.reloadData()
  37. }
  38. }
  39. extension KMQucikToolsView: NSCollectionViewDelegate {
  40. //当item被选中
  41. public func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
  42. print("点击")
  43. let view = collectionView.item(at: indexPaths.first!) as! KMQucikToolCollectionViewItem
  44. // let content = view.model
  45. // guard let callBack = didSelect else { return }
  46. //
  47. // content?.index = indexPaths.first!.item
  48. // callBack(self, content!)
  49. }
  50. //当item取消选中
  51. public func collectionView(_ collectionView: NSCollectionView, didDeselectItemsAt indexPaths: Set<IndexPath>) {
  52. _ = collectionView.item(at: indexPaths.first!) as! KMQucikToolCollectionViewItem
  53. }
  54. }
  55. extension KMQucikToolsView: NSCollectionViewDataSource {
  56. public func numberOfSections(in collectionView: NSCollectionView) -> Int {
  57. return 1
  58. }
  59. public func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
  60. return self.data.count
  61. }
  62. //返回对应的item自定义个体
  63. public func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
  64. let view = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMQucikToolCollectionViewItem"), for: indexPath) as! KMQucikToolCollectionViewItem
  65. if self.data.count > indexPath.item {
  66. view.model = self.data[indexPath.item]
  67. }
  68. return view
  69. }
  70. }
  71. extension KMQucikToolsView: NSCollectionViewDelegateFlowLayout {
  72. public func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize {
  73. return NSSize(width: 216, height: 96)
  74. }
  75. public func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, insetForSectionAt section: Int) -> NSEdgeInsets {
  76. return NSEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
  77. }
  78. }