2012-03-12 23 views
20

我想知道我怎麼可以創建可可定製的部件/控制。 不是一個完整的教程,但一些指導開始研究。我對自定義視圖,核心動畫等感到困惑,我感到迷茫。可可OSX自定義部件/控制

我看到了很多很酷的控件,像裏德應用,或麻雀等。例如:

Sparrow

左側是一個可摺疊的菜單,其中包括動畫等我如何能實現相似的東西?我想過使用WebView + HTML + JavaScript,但這看起來並不是一個非常優化的解決方案。

+1

這是一個很廣泛的問題 - 你可能需要修改它,使之更加具體。具體問題往往最適用於SO - 模糊的問題可能會被視爲「不具有建設性」或「不是真正的問題」。 – Caleb 2012-03-12 23:15:14

回答

24

控件是視圖,因此,如果自定義視圖迷惑你,你就需要獲得關於移動定製控件之前想通了。雖然你應該閱讀整個View Programming Guide,該部分叫做Creating a Custom View讓你開始創建你自己的看法。嘗試創建一個簡單的視圖,例如繪製一個圓或時間。

當你有意見想通了,轉移到自定義控件。大多數控件的工作方式與大致相同。用戶觸摸它們,並且控件響應:a)跟蹤用戶的輸入,b)改變它的值,c)將它的動作消息發送到它的目標,以及d)通過重繪自己給用戶一些反饋。要開始,首先確保您知道如何使用控件。閱讀Control and Cell Programming Topics應該有所幫助,並且標題爲Subclassing NSControl的部分涵蓋(顯然)創建您自己的子類。

您提供的例子很顯然蘋果的Mail.app。窗口左側的視圖可能是NSOutlineView的一個實例,或者它可能是一個自定義類。無論哪種方式,如果您想複製該功能,NSOutlineView將是一個很好的起點。 NSOutlineView是NSTableView的一個子類,它又是NSControl的一個子類,它又是NSView的子類。閱讀Outline View Programming Topics以獲取入門幫助 - 表格和輪廓非常有用,但使用比按鈕和文本字段等基本控件更復雜。

+1

謝謝Caleb,這似乎是一個很好的起點。 – 2012-03-13 00:52:41

+2

這是一個非常好的發送先決條件,通常不在可可中清楚。做得好 – uchuugaka 2013-08-06 06:00:46

4

我知道這只是用戶界面的一部分,但我最近編碼類似側邊欄的東西。如果您查看源代碼,它可能會幫助您瞭解如何使用自定義控件和單元格。

你可以檢查出來Github上:
https://github.com/iluuu1994/ITSidebar