我正在創建一個應用程序,我需要在其中透明的具有透明PNG圖像的NSView。問題是,我正在繪製的NSView上有一個灰色的背景。我有它的子類(如TransparentRectangleView),但不知道要在drawRect中放置什麼以使其透明。將NSView子類化爲透明背景
我已經覆蓋了isOpaque方法返回NO,但它似乎並沒有幫助...
另外,有已經是一個子類的NSView類似於iPhone的UIImageView的(只要我能在裏面添加子視圖,我需要在裏面添加一些文本)。
我正在創建一個應用程序,我需要在其中透明的具有透明PNG圖像的NSView。問題是,我正在繪製的NSView上有一個灰色的背景。我有它的子類(如TransparentRectangleView),但不知道要在drawRect中放置什麼以使其透明。將NSView子類化爲透明背景
我已經覆蓋了isOpaque方法返回NO,但它似乎並沒有幫助...
另外,有已經是一個子類的NSView類似於iPhone的UIImageView的(只要我能在裏面添加子視圖,我需要在裏面添加一些文本)。
要使視圖透明,只需使用[NSColor clearColor]填充視圖。
- (void)drawRect:(NSRect)rect {
[[NSColor clearColor] set];
NSRectFill(rect);
}
isOpaque的默認實現返回NO,所以如果你是子類的NSView,而不是其他一些觀點,你不必擔心覆蓋它。
接受的答案不適用於我,因爲我的窗口是不透明的。作爲http://www.drissman.com/blog/archives/2009/10/09/nsrectfill_and_nscolor_clearcolor.html(和下面的討論)說,下面的代碼工作:
- (void)drawRect:(NSRect)rect {
[[NSColor clearColor] set];
NSRectFillUsingOperation(rect, NSCompositeSourceOver);
// do other drawings
}
雨燕版本:
override func draw(_ dirtyRect: NSRect) {
NSColor.clear.set()
dirtyRect.fill()
}
是不是有在Interface Builder透明滑蓋的?我似乎記得無意中拒絕了我的一個觀點的不透明性。 – 2011-01-08 18:30:48
我幾乎100%肯定地設定了整個視圖的透明度,包括兒童。這意味着我的所有按鈕和文字也會有1%的不透明度或其他。如果我錯了,請讓我知道:D – 2011-01-08 18:34:43
等等,所以你只想要一個透明的背景顏色?我知道UIViews有一個可以使用的預定義透明顏色,雖然我沒有嘗試過使用它與NSViews。 – 2011-01-08 18:40:52