NSImageView не работает? - PullRequest
       27

NSImageView не работает?

3 голосов
/ 11 апреля 2011

Я пытаюсь поместить изображение в вид. Это мой код:

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 Ответ

9 голосов
/ 11 апреля 2011

Поскольку [imView isValid] возвращает false, это означает, что NSImage не смог создать изображение на основе этого файла. Распространенной причиной является то, что файл не может быть найден. Из документации -initByReferencingFile:,

имя файла Полное или относительное имя пути, указывающее файл с нужными данными изображения. Относительные пути должны быть относительно текущего рабочего каталога.

Это означает, что поведение -initByReferencingFile: зависит от текущего каталога, и в идеале вы должны передать полный путь.

Лучшее решение - использовать +imageNamed: вместо этого по двум причинам: он использует кэш изображений и может искать файл внутри пакета приложения.

...