2013-06-18 2 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' может быть неправильно задано в проекте. Добавьте предложение 'else' в этот оператор' if' с 'NSLog (@" Image not set! ");'. – trojanfoe

+0

проверьте целевое членство изображения в панели инспекторов –

ответ

-8

Вы должны использовать UIImageView вместо NSImageView.

+8

Откуда вы знаете? Он не сказал, что у него есть он? На самом деле он включил '', поэтому он, безусловно, использует OSX! – trojanfoe

+0

u'r right buddy. уверен, что это 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 (@« размер% f% f », aImage.size.width, aImage.size.height)»). работают и обращаются.

Вот как я добавил изображение png. я создал новую папку группы под названием «Ресурсы», а затем щелкнул правой кнопкой мыши и добавил подготовленную фотографию. Не уверен, что что-то не так, как я делал здесь.

Я, наконец, понял. Просто вставляйте «я» вперед в «myImageView set Image: aImage». например [self.myImageView setImage: aImage];

0

У меня тоже была аналогичная проблема, когда я добавил изображение в папку Assets.xcassets, но изображение не появилось. Проблема оказалась проблемой формата, я указал box.png, поскольку изображение было экспортировано как изображение PNG. Однако мое приложение Mac не распознало его (по какой-либо причине). Поэтому я удалил .png от имени строки:

[NSImage imageNamed:@"box"] 

По какой-то причине, изображение, которое я сделал не было признано в качестве PNG изображений. Это не имеет значения, хотя, потому что в соответствии с Apple dev docs, вам не нужно указать формат файла для PNG изображений:

Для PNG изображений, вы можете опустить расширение имени файла. Для всех остальных форматов файлов всегда укажите расширение имени файла.

 Смежные вопросы

  • Нет связанных вопросов^_^