2016-04-30 3 views
0

Я пишу скринсейвер для OSX, используя Xcode 7.3. Этот скринсейвер покажет изображение шара, подпрыгивающего вокруг экрана. Однако в настоящее время я не могу загрузить изображение из пакета.Ресурсы загрузки плагинов Xcode

Вот как я загружаю изображение в ScreenSaverView: NSImage *img = [NSImage imageNamed:"ball.png"]; и img оказывается равным нулю.

Изображение, безусловно, добавлено в комплект: оно добавлено в «Копировать ресурсы Bundle» для цели заставки; он находится в Ball.saver/Contents/Resources.

Я попытался распечатать путь ресурса с помощью [[NSBundle mainBundle] resourcePath], и он печатает путь к системным настройкам /Applications/System Preferences.app/Contents/Resources, что понятно, поскольку заставка представляет собой только системный плагин. Мой вопрос: как мне загрузить ресурсы из комплекта скринсейвера?

ответ

0

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

NSBundle *bundle = [NSBundle bundleWithIdentifier:bundleId] 
NSString *filePath = [bundle pathForResource:imageName ofType:imageType]; 
NSImage *image = [[NSImage alloc] initWithContentsOfFile:filePath]; 
Смежные вопросы