1
我有一个NSWindow的子类来为我的应用程序定制我的一个窗口。 我有一切设置,但我不知道如何使角落圆。 目前,我的窗口是一个透明的矩形窗口,其中包含一些按钮,标签和一个文本框。目标C,圆角自定义窗口?
类包括:
#import "TransparentRoundRectWindow.h"
@implementation TransparentRoundRectWindow
-(id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
{
self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
if (self) {
[self setAlphaValue:0.75];
[self setOpaque:YES];
[self setHasShadow:YES];
[self setBackgroundColor:[NSColor clearColor]];
}
return self;
}
-(BOOL)canBecomeKeyWindow
{
return YES;
}
我只是需要做的角落轮了。我试图寻找类似的情况,并看到其中一些解释覆盖drawRect方法,但我无法让他们工作。 我怎么能这样做? (我正在使用Mac OS X Lion)
在此先感谢。
感谢您的回答。那么这两个人是不是在单独的课程?我把他们全部放在同一班。我对Objective-c非常陌生,所以如果你可以简单地向我解释如何添加Window的视图子类,那将更有帮助。此外,当我将setOpaque更改为NO时,我得到一个完全透明的窗口,尽管我只希望它是部分透明的(alpha值为0.75)。难道我做错了什么? – Dennis 2012-04-01 09:09:43
@丹尼斯我添加了更多解释如何做到这一点。 – 2012-04-01 09:22:03
是的,它终于工作了!非常感谢。除了现在窗户内的所有物体都有白色的角落。文本框,按钮和标签有额外的方形角。无论如何将它们删除?我是否还必须为每个对象创建一个子类? – Dennis 2012-04-01 19:27:50