我想畫的是類似於這樣一個NSWindow:定製NSWindow繪製
http://vibealicious.com/site/apps/notify/screenshots/mainUIFull.png
,它具有典型的NSWindow外觀上採用了底欄等,但不是在標題欄頂部,我想畫一個小箭頭。
有沒有簡單的方法來做到這一點?我是否必須手工繪製整個窗口(底欄和全部)?或者我可以稍微修改現有的NSWindow佈局,只在頂部繪製箭頭?謝謝
我想畫的是類似於這樣一個NSWindow:定製NSWindow繪製
http://vibealicious.com/site/apps/notify/screenshots/mainUIFull.png
,它具有典型的NSWindow外觀上採用了底欄等,但不是在標題欄頂部,我想畫一個小箭頭。
有沒有簡單的方法來做到這一點?我是否必須手工繪製整個窗口(底欄和全部)?或者我可以稍微修改現有的NSWindow佈局,只在頂部繪製箭頭?謝謝
你可能會僞造標題欄,使用覆蓋窗口頂部的第二個子窗口並繪製箭頭。否則,你需要自己繪製整個東西。
不確定你的意思是什麼簡單的這樣做,但它不是很難做出自己的窗口子類,並自己繪製窗口控件。對於這種情況,子窗口會有點矯枉過正。
看看Round Transparent Window示例項目。
自己繪製所有東西的唯一問題是,如果窗口樣式發生變化(例如,在新的操作系統版本中),那麼您的窗口將顯得不合適。當然,這也適用於箭頭疊加。 – 2010-01-02 05:01:47
這是事實,並且認真考慮自定義窗口是否適合您的情況是一個很好的理由。 – NSResponder 2010-01-02 05:31:55
這幾乎是我想到的。有沒有辦法只獲得標題欄的框架(原點和大小),以便我可以調整大小並定位我的子窗口以覆蓋它? – indragie 2010-01-02 01:04:34
您可以使用'NSWindow'的'+ contentRectForFrameRect:styleMask:'類方法來獲取窗口的內容rect。然後,您可以輕鬆地將其與窗口框架進行比較,以獲得標題欄的大小。 – 2010-01-02 05:08:12
這就是我最終做的,謝謝:) – indragie 2010-01-07 04:07:27