我正在尝试使用一些基本功能创建一个Cocoa-AppleScript应用程序,我想为窗口显示背景图像,然后在其上方显示一个颜色框。
我终于弄明白了如何通过本指南(http://www.mere-mortal-software.com/blog/details.php?d=2007-01-08)设置背景图像,但我不知道如何在它上面设置一个颜色框。我想要实现的基本布局是:
窗口视图有一个ViewBackground
类,它是NSView
的子类。 ViewBackground.m
文件如下所示:
-(void)drawRect:(NSRect)rect
{
NSImage *anImage = [NSImage imageNamed:@"repeat"];
[[NSColor colorWithPatternImage:anImage] set];
NSRectFill([self bounds]);
}
就像我说的,这很好。问题是当我尝试将背景颜色为白色的盒子放在上面时。我想我可以通过创建NSView
,ContentBackground
的新子类来实现这一目标。 ContentBackground.m
文件如下所示:
-(void)drawRect:(NSRect)rect
{
[[NSColor whiteColor] set];
NSRectFill(rect);
}
我的窗口的层次结构如下所示:
现在这个有时有效,但通常会在调试器中产生这个结果:
int main(int argc, char *argv[])
{
[[NSBundle mainBundle] loadAppleScriptObjectiveCScripts];
return NSApplicationMain(argc, (const char **)argv); Thread 1: Stopped at breakpoint 1
}
我做错了什么,如何解决这个问题?
此外,内容(按钮等)将放在ContentBackground
框的顶部。