Cocoa - loadNibNamed: owner: topLevelObjects: from loaded bundle

En una aplicación Cocoa basada en documentos, estoy creando una instancia de varios objetos (complementos) de paquetes externos utilizando:

- (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;
}

Dentro de cada uno de ellos, se carga un archivo de plumilla en init, que enlaza la vista raíz con una propiedad en mi clase de complemento. Debajo de una definición mínima de clase de Plugin:

@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

Si bien esto funciona bien, quiero reemplazar la llamada anterior a NSBundle (porque está en desuso para OS X 10.8+) y reemplazarla con:

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

Sin embargo, el uso de mainBundle en este caso, naturalmente, no establece la referencia de objeto de nivel superior en mi clase de Complemento, sospecho que la causa mainBundle no tiene nada que ver con el paquete de Plugin.

¿Cómo haría para lograr eso? ¿Hay alguna manera de encontrar el paquete "actual" tal vez (el paquete del que proviene la clase Plugin, por así decirlo)?

Gracias.