我试图在窗口打开时在mac应用程序中显示NSPopover以向用户发出指令,但不会显示弹出窗口。
如果我从按钮按下完全相同的功能,则弹出窗口会成功显示,但是当我在windowDidLoad中调用它时,它不会。
我可以看到我提出的控件有一个界限,所以我不认为这是问题所在。我还检查过弹出窗口的行为不是短暂的,因此它不应该在没有干预的情况下关闭。
在我的函数中,我将一些变量传递给自定义初始化器,但基本上就是这样:
CustomViewController *instruction = [[CustomViewController alloc] init];
[instruction.popover showRelativeToRect:[aField bounds] ofView:aField preferredEdge:NSMaxXEdge];
init方法只调用以下内容,自定义视图和控制器连接在NIB中。
[super initWithNibName:@"InstructionalView" bundle:nil]
有没有人来过这个?
答案 0 :(得分:0)
您是以编程方式分配和初始化您的CustomViewController对象,但是popover在您显示它之前没有机会从nib加载(在alloc& init之后的行上)。
在这两行之间force a load via loadView
, like this:
[instruction loadView];
当您尝试显示“instruction.popover
”时,您可能还希望确定“{{1}}”不是。