2010-01-02 78 views

回答

1

你可能會僞造標題欄,使用覆蓋窗口頂部的第二個子窗口並繪製箭頭。否則,你需要自己繪製整個東西。

+0

這幾乎是我想到的。有沒有辦法只獲得標題欄的框架(原點和大小),以便我可以調整大小並定位我的子窗口以覆蓋它? – indragie 2010-01-02 01:04:34

+0

您可以使用'NSWindow'的'+ contentRectForFrameRect:styleMask:'類方法來獲取窗口的內容rect。然後,您可以輕鬆地將其與窗口框架進行比較,以獲得標題欄的大小。 – 2010-01-02 05:08:12

+0

這就是我最終做的,謝謝:) – indragie 2010-01-07 04:07:27

1

不確定你的意思是什麼簡單的這樣做,但它不是很難做出自己的窗口子類,並自己繪製窗口控件。對於這種情況,子窗口會有點矯枉過正。

看看Round Transparent Window示例項目。

+0

自己繪製所有東西的唯一問題是,如果窗口樣式發生變化(例如,在新的操作系統版本中),那麼您的窗口將顯得不合適。當然,這也適用於箭頭疊加。 – 2010-01-02 05:01:47

+0

這是事實,並且認真考慮自定義窗口是否適合您的情況是一個很好的理由。 – NSResponder 2010-01-02 05:31:55