我有一個NSCollectionView啓動並運行相當不錯的NSArrayController。我的收藏查看項目被配置爲可多選,我對此感到滿意。但是,在集合視圖中發生鼠標拖動事件時,將繪製選擇矩形。如何禁用此選擇矩形繪圖,並仍在我的NSCollectionView中保持多個選擇?謝謝你的幫助!如何禁用NSCollectionView中的選擇矩形繪圖?
回答
NSCollectionView
是一個相當不透明的類,沒有太多方法可以輕鬆修改其基本行爲。
拖動操作似乎是由私有方法_performDragFromMouseDown:
處理,而不是通過覆蓋mouseDragged:
來處理。究竟是什麼私人方法我不確定。
簡單的答案是,除了修改私有方法NSCollectionView
之外,您不能更改選擇外觀。
如果您必須修改此行爲,則可能需要使用自定義視圖而不是NSCollectionView
。
感謝您的回答,我曾嘗試重寫mouseDragged:沒有成功。 – ctpenrose 2012-03-19 17:46:12
隨着最新NSCollectionView
(2015年發佈的,我認爲?)它呼籲代表viewForSupplementaryElementOfKind
來獲取視圖用於繪製選擇矩形。
通過委託比較kind.rawValue
到"NSCollectionElementKindSelectionRectIndicator"
可以「捕獲」這種情況下,和return NSView()
,如果你不希望它來繪製。
如果做要畫它,使用使用"NSCollectionElementKindSelectionRectIndicator"
的rawValue手工製成一種/標識符返回collectionView.makeSupplementaryView(ofKind:
。自2015年以來,這些類型/標識符已經從枚舉中丟失了,我相信,每次執行NSCollectionView時都會引起我的悲痛。
編輯:我擡頭舊的文章我這個在蘋果開發者論壇提出,我提到我不得不防範numberOfSections == 0
,在那種情況下return NSView()
。
- 1. 如何在AdvancedCustomDrawItem中繪製TTreeView的樣式選擇矩形?
- 2. 在google-chart散點圖中選擇矩形繪圖區域
- 3. 繪圖矩形
- 4. MFC在圖片控件上選擇用戶繪製的矩形
- 5. 谷歌地圖中的框/矩形繪製選擇
- 6. 如何用Qt在屏幕上繪製選擇矩形?
- 7. 如何禁用NSCollectionView中的動畫
- 8. 自定義繪製選擇矩形
- 9. 使用System.Drawing.DrawRectangle繪製選擇矩形來選擇東西
- 10. Xcode中的矩形選擇
- 11. 用PDFLib繪製矩形圖
- 12. 在等矩形圖像中選擇ROI
- 13. 如何在圖像中選擇正確的矩形?
- 14. 如何在底圖上繪製矩形
- 15. 在圖框上繪製矩形 - 如何限制矩形區域?
- 16. 如何在matplotlib圖形中的特定區域繪製矩形
- 17. 包含圖像內的選擇矩形
- 18. 如何用OpenCV繪製圓角矩形(帶圓角的矩形)?
- 19. 如何繪製矩形?
- 20. 如何繪製矩形?
- 21. 如何在bing地圖中創建「橡皮矩形選擇」
- 22. 如何在半圓形中切出矩形繪圖?
- 23. Java選擇已繪製的形狀,並在其周圍繪製矩形
- 24. JS繪圖矩形。無法在舊矩形上重繪
- 25. Java的矩形選擇
- 26. 在Sublimetext3中禁用矩形
- 27. 繪圖中的矩形問題
- 28. 繪製矩形圖像 - LibGdx
- 29. 用於選擇繪圖區域並查找最大值的矩形
- 30. c#窗體窗體 - 從圖片框中選擇繪製的矩形
我又一次發現了這個問題。我重覆mouseDragged:在我的NSCollectionView子類和我的CollectionViewItem子類。我添加了斷點,並發現在鼠標拖動過程中都不會調用這些斷點。將不得不看看在幕後使用了哪些其他視圖。 – ctpenrose 2012-03-16 07:43:15
所以你只是想多選擇像現在這樣工作,但不顯示任何矩形? – 2012-03-16 19:50:35
我想允許指向並單擊,並且用shift |命令單擊選擇來工作,而不用在拖動上繪製選擇矩形。重寫mouseDragged:沒有幫助。例如,在Apple的Mail.app中,此行爲就是針對其郵件主題集合視圖。 – ctpenrose 2012-03-26 22:34:17