2017-07-09 42 views

回答

0

虽然我真的不知道为什么这是不可能通过在Interface Builder拖移,您仍然可以通过手动使用目标呈现酥料饼/行动机制。您的工具栏按钮将调用像presentFooPopover(:)这样的操作,该操作会调用NSViewControllerpresentViewController(_ viewController: NSViewController, asPopoverRelativeTo positioningRect: NSRect, of positioningView: NSView, preferredEdge: NSRectEdge, behavior: NSPopover.Behavior)在某个视图中显示某个位置的弹出窗口的目标视图控制器。

呈现视图控制器(您呼叫presentViewController...)不必拥有您用于定位的视图。请注意,positioningRect必须位于positioningView的坐标系中,因此通常使用视图的bounds

将所有这些放在一起,您可以将按钮(sender在您的动作中)作为定位视图并使用其边界。负责呈现弹出窗口的视图控制器可以是你的窗口控制器或窗口的内容视图控制器(或者是当弹出窗口仍然呈现时不会消失的任何东西,这也会消除弹出窗口)。