0

我已经扩展了我的窗口,使其具有按钮内容边框。问题是我的 NSSplitView 覆盖了边界。我的想法是我可以使拆分视图透明(但它上面的控件不透明)。

下图显示了我正在寻找的内容,但缺少拆分器:

缺少拆分器的屏幕截图

看看窗口底部是如何有按钮的。这是我想要达到的效果,但没有任何运气。我尝试使用的代码是:

CALayer *transparentViewLayer = [CALayer layer];
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(
                                                      256.0,
                                                      256.0,
                                                      256.0,
                                                      0)]; //RGB plus Alpha Channel
[splitView setWantsLayer:YES]; // view's backing store is using a Core Animation Layer
[splitView setLayer: transparentViewLayer];

如果我没有设置 transparentViewLayer,那么我最终会得到以下结果:

分离器但隐藏的底栏

它显示了 spitter,但隐藏了窗口底部栏。我还尝试了子类NSSplitView化并添加以下内容:

- (void) drawRect: (NSRect) dirtyRect
{
    [[NSColor colorWithSRGBRed: 0.0 green: 255.0 blue: 0.0 alpha: 155.0] setFill];
    NSRectFill(dirtyRect);
} // End of drawRect

这给我留下了一个绿色的分离器,并且没有用于 Windows 底栏的 alpha。关于如何达到我想要的效果的任何想法?(我希望底部栏带有我的按钮和拆分器可见)。

4

1 回答 1

0

在您的子类中,不要覆盖-[NSSplitView drawRect:]. 相反,-drawDividerInRect:仅在该矩形中覆盖并绘制您的分隔线。当您想按照自己的意愿“弯曲”课程时,请始终 查阅文档。

于 2013-01-15T23:58:25.207 回答