加载Nib命名未设置出口



我试图添加一个NSPopOver到我的应用程序,但只有在运行10.7或更高版本时才加载它。我放了弹出窗口,视图控制器&视图在一个单独的xib中,并加载

BOOL loaded = [NSBundle loadNibNamed:@"Popovers.xib" owner:self];

从我的应用程序内部委托的awakeFromNib方法。xib加载ok(加载是YES),但指向NSPopover的出口仍然为空。在awakeFromNib方法中加载xib是否有问题?

有趣的是,当我没有在文件名中包含。xib扩展名时,它崩溃了。

如果我做对了,NSBundle的loadNibNamed:owner:方法只会加载bundle,但不会实例化顶层对象。你可以使用一个合适的NSNib方法来实现,例如:instantiateNibWithOwner:topLevelObjects:.

我更喜欢通过创建NSViewController子类实例来加载nib:

viewController = [[MyViewController alloc] initWithNibName:@"name" bundle:[NSBundle mainBundle]]

然后在自定义视图控制器中实例化Nib -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil方法:

[self loadView];

相关内容

  • 没有找到相关文章

最新更新