弹出窗口未附加到锚点

Popover not attached to anchor

我想显示一个弹出窗口,它的箭头指向属于我视图一部分的按钮(例如按钮在我的主视图上)。我在 Interface Builder 故事板编辑器中执行此操作(按住 Ctrl 从按钮拖动到弹出内容视图)。弹出窗口显示但未附加到按钮。我在工具栏弹出窗口中找到的按钮按预期显示附加到按钮。 segue 的锚 属性 设置到此按钮。 Xcode 版本 7.0.1 (7A1001)。

编辑:我所做的图片: 1)故事板。首先,我按住 Ctrl 从工具栏按钮拖动到第一个控制器,然后按住 Ctrl 从第二个按钮拖动到第二个控制器。 2) 正确附加弹出窗口 3) 弹出窗口不附加到视图中的按钮。

你是对的。以下方法显示发送视图为零,默认情况下 window 的内容视图用于弹出窗口。

所以要修复,只需检查 positioningView 是否为 nil。如果是,将其设置为按钮(为其创建插座)。

将以下方法添加到您的 viewController

- (void)presentViewController:(NSViewController *)viewController asPopoverRelativeToRect:(NSRect)positioningRect ofView:(NSView *)positioningView preferredEdge:(NSRectEdge)preferredEdge behavior:(NSPopoverBehavior)behavior
{
  //do custom implementation (workaround)
  [super presentViewController:viewController asPopoverRelativeToRect:positioningRect ofView:positioningView preferredEdge:preferredEdge behavior:behavior];
}