2013-06-18 65 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圖像,你可以省略擴展名。對於所有其他 文件格式,請始終包含文件擴展名。