And*_*w M 11 macos cocoa subclass objective-c nsview
我正在创建一个应用程序,我需要一个透明的NSView,里面有一个透明的PNG图像.问题是,我正在绘制的NSView上有一个灰色背景.我有它子类(作为TransparentRectangleView),但不知道在drawRect中放什么使它透明.
我已经重写了isOpaque方法以返回NO但它似乎没有帮助......
或者,是否已经存在类似于iPhone的UIImageView的子类NSView(只要我可以在里面添加子视图,我需要在里面添加一些文本).
ugh*_*fhw 17
要使视图透明,只需使用[NSColor clearColor]填充它.
- (void)drawRect:(NSRect)rect {
[[NSColor clearColor] set];
NSRectFill(rect);
}
Run Code Online (Sandbox Code Playgroud)
isOpaque的默认实现返回NO,因此如果您是NSView的子类而不是其他视图,则无需担心覆盖它.
lk_*_*_vc 11
由于我的窗户不透明,所接受的答案对我不起作用.正如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
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特版本:
override func draw(_ dirtyRect: NSRect) {
NSColor.clear.set()
dirtyRect.fill()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10701 次 |
| 最近记录: |