2013-06-18 41 views
1

我有一小段程序在Image-well中显示图像。我正在测试,但屏幕上没有显示任何内容。欣赏任何人都可以提供帮助。无法在NSImageView中设置图像

.h文件中:

#import <Cocoa/Cocoa.h> 
@interface TestAppDelegate : NSObject <NSApplicationDelegate> 
{ 
    IBOutlet NSImageView *myImageView; 
} 
@property (assign) IBOutlet NSWindow *window; 
@property (assign) IBOutlet NSImageView *myImageView; 
@end 

.m文件:

#import "TestAppDelegate.h" 

@implementation TestAppDelegate 

- (void)dealloc 
{ 
    [super dealloc]; 
} 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    NSString * filePath = @"haha.png"; // the pic file that I added into the project 
    NSImage * aImage = [NSImage imageNamed:filePath]; 

    if(aImage) 
    { 
     NSLog(aImage.name); 
     NSLog(@"size %f %f",aImage.size.width,aImage.size.height); 
     //both of the NSLogs work but the Image-well shows blank    
     [myImageView setImage:aImage]; 
    } 
} 
@end 
+2

这些类型的问题几乎都与'IBOutlet'连接没有连接有关。当你看到头文件中的'IOOutlet'是左边空白处填充的圆? – trojanfoe

+0

或者,图像'haha.png'可能没有在项目中正确设置。用'NSLog(@“Image not set!”);''添加'else'子句到'if'语句。 – trojanfoe

+0

在检查器面板中检查图像的目标成员资格 –

回答

-8

你必须到位NSImageView的使用的UIImageView。

+8

你怎么知道?他没有说他的操作系统?事实上,他包含了''所以他肯定使用OSX! – trojanfoe

+0

你是对的好友。确定它是osx ..但任何人都可以找出奇怪的问题在哪里?thx – user2496245

2

更换

NSImage * aImage = [NSImage imageNamed:filePath] 

+2

这会造成什么不同? – trojanfoe

+0

@trojanfoe:imageNamed不接受图像文件的完整路径。它只接受一个文件名,然后在应用程序的主包中查找具有该文件名的图像。另一方面,imageWithContentsOfFile需要文件的全部或部分路径。 –

+0

所以我猜'imageNamed:'在这里更合适,文件路径是'@“haha.png”'...... –

0

它可能是PNG文件不是在应用程序的捆绑中找到。但令人困惑的是NSlog函数('NSLog(aImage.name)和NSLog(@“size%f%f”,aImage.size.width,aImage.size.height)')。 正在工作和反馈。

下面是我如何添加png图像。我创建了一个名为'资源'的新组文件夹,然后右键单击并添加准备好的照片。不知道我是否在这里做错了什么。

我终于明白了。只需在'myImageView set Image:aImage'前加上一个'self'即可。像[self.myImageView setImage:aImage];

0

我也有类似的问题,我在Assets.xcassets文件夹中添加图像,但图像不会出现。这个问题变成了一个格式问题,我指定了box.png,因为图像被导出为PNG图像。然而,我的Mac应用程序并不认识它(无论出于何种原因)。所以我删除了.png从字符串名称:

[NSImage imageNamed:@"box"] 

出于某种原因,我所取得的图像并不被认为是一个PNG图像。它不不过无所谓,因为按照该Apple dev docs,你并不需要指定文件格式PNG图片:

PNG图像,你可以省略扩展名。对于所有其他 文件格式,请始终包含文件扩展名。