NSView子类在另一个NSView子类上?

时间:2012-01-23 21:04:21

标签: cocoa

我正在尝试使用一些基本功能创建一个Cocoa-AppleScript应用程序,我想为窗口显示背景图像,然后在其上方显示一个颜色框。

我终于弄明白了如何通过本指南(http://www.mere-mortal-software.com/blog/details.php?d=2007-01-08)设置背景图像,但我不知道如何在它上面设置一个颜色框。我想要实现的基本布局是:

enter image description here

窗口视图有一个ViewBackground类,它是NSView的子类。 ViewBackground.m文件如下所示:

-(void)drawRect:(NSRect)rect
{
    NSImage *anImage = [NSImage imageNamed:@"repeat"];
    [[NSColor colorWithPatternImage:anImage] set];
    NSRectFill([self bounds]);
}

就像我说的,这很好。问题是当我尝试将背景颜色为白色的盒子放在上面时。我想我可以通过创建NSViewContentBackground的新子类来实现这一目标。 ContentBackground.m文件如下所示:

-(void)drawRect:(NSRect)rect
{
    [[NSColor whiteColor] set];
    NSRectFill(rect);
}

我的窗口的层次结构如下所示:

enter image description here

现在这个有时有效,但通常会在调试器中产生这个结果:

int main(int argc, char *argv[])
{
    [[NSBundle mainBundle] loadAppleScriptObjectiveCScripts];
    return NSApplicationMain(argc, (const char **)argv);            Thread 1: Stopped at breakpoint 1
}

我做错了什么,如何解决这个问题?

此外,内容(按钮等)将放在ContentBackground框的顶部。

0 个答案:

没有答案