使无边框窗口具有更暗的更大阴影

时间:2012-01-20 21:43:49

标签: xcode macos cocoa xcode4.2 nswindow

当窗口在无边框窗口中变为活动状态时,如何创建更暗和更大的阴影?

我将NSWindow子类化,我的窗口成为主窗口和关键窗口,但这没有帮助..阴影仍然很小。所以也许有人知道如何解决这个问题?我也尝试过无效的阴影,但这也没有帮助..

Subclassed NSWindow:

- (id)initWithContentRect:(NSRect)contentRect
            styleMask:(NSUInteger)windowStyle
              backing:(NSBackingStoreType)bufferingType
                defer:(BOOL)flag
{

    self = [super initWithContentRect: contentRect
                  styleMask: NSBorderlessWindowMask 
                    backing: NSBackingStoreBuffered
                      defer: NO];

    if(self)
    {
        [self setHasShadow:YES];

        [self setBackgroundColor:[NSColor clearColor]];
        [self setOpaque:NO];
    }   

return self;
}

3 个答案:

答案 0 :(得分:1)

如果这是我的问题,我可能会为无边框窗口关闭阴影属性 ,然后从display函数处理阴影图在我的NSWindow子类中(确保调用[super display],以便各种内容和子视图获得自己的绘制方法)。

这是a potentially related question with an answer for you to consider

答案 1 :(得分:1)

这与窗口的styleMask相关联。如果将其设置为NSTitledWindowMask窗口将获得更大的阴影。

答案 2 :(得分:1)

总的来说,我认为达尔马齐奥在他的观察中是正确的,无论什么原因,无边界的窗户都有不太明显的阴影。也许用苹果提供雷达。