我有一個關於創建自定義視圖的問題。我想實現一個接口,我希望在一個地方配置不同的對象,每個對象都有自己的控件。有點像在automator中,在右側視圖中,工作流以不同的動作顯示。是那些NSView或NSCell的子類? 任何例子將不勝感激!自定義視圖或自定義單元格
肯
我有一個關於創建自定義視圖的問題。我想實現一個接口,我希望在一個地方配置不同的對象,每個對象都有自己的控件。有點像在automator中,在右側視圖中,工作流以不同的動作顯示。是那些NSView或NSCell的子類? 任何例子將不勝感激!自定義視圖或自定義單元格
肯
這裏是你如何告訴一個的NSCell和一個NSView相距:
NSCells基本上是郵票。給定一定的價值/對象,NSCell知道如何在屏幕上繪製你想要的。就像NSTextCells知道如何在屏幕上繪製NSString的方式。 NSCells沒有狀態,不記得任何東西,它們只是一組一套繪圖指令,可以用給定的值/對象來執行。這個想法是儘可能地重用NSCell,使畫面上的繪畫變得非常簡單。
NSViews是您屏幕上發生的事情的邏輯容器。他們可以在技術上做自己的繪圖,但其中不少人使用NSCell來做繪圖。例如,NSTextField使用NSTextCell在屏幕上繪製文本,它還包含在編輯期間切換編輯和不編輯時所需的額外邏輯,方法是顯示編輯期間可以鍵入的文本框,以及在不編輯時使用NSTextCell編輯。 NSViews也是Responder鏈的一部分,可以響應鼠標點擊,鍵盤事件和排序。
你可能最終會得到兩個,NSViews來保存你想用來配置每個對象和NSCells繪製自定義用戶界面元素(如使用非標準控件)的所有控件。