NSImageView не работает?
Я пытаюсь поместить изображение в представление. Вот мой код:
NSImageView *imView = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, 480, 360)];
NSImage *myImage = [[NSImage alloc] initByReferencingFile:@"image.png"];
[imView setImage:myImage];
[theView addSubview:imView];
[window setContentView:theView];
Но окно пусто(изображение не рисуется). Например, если я помещаю текстовое поле в представление.. он работает отлично, но не NSImageView...Я проверил консоль, и там нет предупреждений/сообщений об ошибках... Спасибо!
1 ответ:
Поскольку
[imView isValid]
возвращает false, это означает, чтоNSImage
не удалось создать изображение на основе этого файла. Распространенной причиной является то, что файл не может быть найден. Из документации-initByReferencingFile:
,имя файла Полное или относительное имя пути, указывающее файл с требуемыми данными изображения. Относительные пути должны быть относительно текущего рабочего каталога.
Это означает, что поведение
-initByReferencingFile:
зависит от текущего каталога, и в идеале вы следует передать полное имя пути.Лучшим решением является использование
+imageNamed:
вместо этого по двум причинам: он использует кэш изображений и может искать файл внутри пакета приложений.