這不是一個真正的繪畫問題,而是一個普通的自定義視圖問題。做出這種區分很重要。
我會用矩形來描述這個,給你一般的想法*。您應該確保您瞭解Cocoa中的view hierarchy和view geometry。如果沒有這些重要的必要知識,你就會死在水中。
設置NSButton的圖像很容易,所以我會把它留給你。但是,按鈕的動作會告訴某個控制器顯示給定按鈕的「圖像選擇器」。您的圖像選擇器將是某種類型的borderless window,其中包含圖像列表。圖像選擇器可以是IKImageBrowserView(您必須啓用Interface Builder中的圖像工具包才能顯示此控件),從而爲您提供類似iPhoto的圖像網格(帶/不帶標題,不同邊框類型等)。
對這個控制器的操作以及它如何創建窗口,管理選擇和設置按鈕圖像的解釋是非常廣泛的所以如果你在任何這些步驟中掛斷,你需要創建一個單獨的問題,每個問題,否則這個答案將不得不是一個指導手冊爲你寫你的應用程序。
*您的問題,是因爲你渴望擁有不同形狀的「彈出窗口」的有些困難......你必須確保你可用的照片完全吻合的形狀,因此沒有人內被切斷。用視圖幾何的基本知識武裝起來,我會把它留給你作爲練習。提示:您可以使用無邊界透明窗口來託管一個在any shape you please中自己繪製的視圖。
有兩件事:1.值得一提的是,彈出窗口應該是包含按鈕的窗口的子窗口。這使得它在自動移動期間跟隨父窗口,並將它們放在Exposé中。 2.有一種情況可能需要*切斷圖像:切斷最後一個可見行意味着該列表是可滾動的。這在Mac上並不重要(因爲您有可見的滾動條),但是我仍然偶爾會錯過摺疊內容以下內容的網頁上的滾動條,因此即使在Mac上也值得考慮。 – 2010-08-05 03:46:09