Какао - loadNibNamed: владелец: topLevelObjects: из загруженного пакета

В основанном на документе приложении Какао я создаю несколько объектов (плагинов) из внешних пакетов, используя:

- (NSMutableArray *)getPluginsOfType:(Class)type;
{
    NSBundle *main = [NSBundle mainBundle];
    NSArray *allPlugins = [main pathsForResourcesOfType:@"bundle" inDirectory:@"../PlugIns"];

    NSMutableArray *availablePlugins = [NSMutableArray array];

    for (NSString *path in allPlugins)
    {
    NSBundle *pluginBundle = [NSBundle bundleWithPath:path];
    [pluginBundle load];
    Class principalClass = [pluginBundle principalClass];
    [availablePlugins addObject:principalClass];
    }
return availablePlugins;
}

Внутри каждого из них при инициализации загружается nib-файл, который связывает корневое представление со свойством в моем классе плагинов. Ниже приведено минимальное определение класса плагина:

@interface Plugin

@property (strong) IBOutlet NSView *thePluginView;

@end

@implementation Plugin

- (instancetype)init
{
    self = [super init];
    if (self)
    {
        [NSBundle loadNibNamed:@"NibName" owner:self];
    }
    return self;
}

@end

Хотя это работает нормально, я хочу заменить приведенный выше вызов NSBundle (потому что этоs устарел для OS X 10.8+) и замените его следующим:

[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:self topLevelObjects:nil];

Однако использование mainBundle в этом случае, естественно, не может установить ссылку на объект верхнего уровня в моем классе плагинов, я подозреваю, что mainBundle не имеет ничего общего с плагином 'с расслоением.

Как бы я пошел для достижения этого? Есть ли способ найти "ток" может быть bundle (пакет, из которого произошел класс Plugin, так сказать)?

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос