2011-03-25 67 views
6

好了,我已经创建了一个Photoshop的图像将与我的应用程序的按钮排列,现在我想使我的窗口的背景图像,从而在该字符图像将对应于我的应用程序键(一个小计算器演示应用程序我一直在工作)给NSWindow背景图像

基本上,而不是给像按钮1,2,3,4文字等我做了一个3×3使用不同的字体的号映射只是因为它看起来非常

什么我有困难,现在是,我似乎无法让我的形象窗口的背景。

我创建了一个NSImageView和我拖着图像文件到它,所以我现在能看到它,但我不能让它的背景。

我是否需要继承NSImageView或者是有一些简单的方法?

我使用XCode 4,btw

谢谢!

回答

13

我想你应该能够做这样的事情:

[window setBackgroundColor:[NSColor colorWithPatternImage:[NSImage imageNamed:@"myImage.png"]]]; 
+2

这应该去哪里?我尝试了我的AppDelegate,并且“window”未定义。用'[self window]替换'window''让应用程序编译并运行,但没有任何事情发生。 – Jeff 2013-06-11 22:31:23

+0

这是不正确地设置我的背景图像,我的意思是图像不适合我的窗口框架,很多未使用的空间。如何去做到这一点,谢谢:) – 2014-06-03 08:14:26

7

这是东西,一个层支持的窗口将是很好的:

[[window contentView] setWantsLayer:YES]; 
[[window contentView] layer].contents = myImage; 

我想你站在一个更好的机会这是为了明智地调整大小(假设您需要),而不是使用图案颜色。

+0

伟大的作品,但它不包括标题栏区域。你有解决方案吗? – 2013-01-06 23:24:59

+2

标题栏不是窗口的'contentView'的一部分;如果您也想在其上画图,您可能正在查看完全自定义的窗口绘图:http://www.cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html我很确定这里有一个或两个关于它的问题。 – 2013-01-06 23:27:31

1

只给你更多的选择 - 你应该能够[window setContentView:myImageView]。在.xib文件中,您希望将按钮等添加为图像视图的子视图。
我不一定推荐这种方法,但需要考虑。

+2

这是一个很好的想法 - 你甚至可以改变IB检查器中内容视图的类 - 但我不认为有任何方法可以在IB中使用子视图设置图像视图(IK或NS)这意味着你必须在代码中移动它们。 – 2011-03-26 01:45:19

+1

是的,但它比听起来容易 - 您可以在IB中设置“视图托管视图”,然后在代码中,您可以将*视图添加为ImageView的子视图。 – Richard 2011-03-27 12:55:39

+1

@理查德:当然!好的解决方案 – 2011-03-27 17:26:07