Popover Segue Cocoa 故事板在 El Capitan 的 Xcode 7 Beta 6 中改变位置

Popover Segue Cocoa Storyboard changing position in Xcode 7 Beta 6 on El Capitan

这是一个非常具体的问题,但是 XcodeEl Capitan 上的 7 Beta 6 似乎改变了 Popover Segues 的锚定方式。弹出窗口本身不是从按钮锚定,而是从封闭视图锚定。有没有其他人遇到过这种情况或想出了解决方法?

例如,这是一个带有按钮的新项目,弹出窗口从视图顶部显示,即使 segue 锚定到按钮。

不幸的是,Xcode 7.0.1 和 El Capitan 10.11 仍然会发生这种情况,因此我们需要按照评论中所述以编程方式执行此操作。此代码段可能会有所帮助:

class ViewController: NSViewController {

    var popover = NSPopover()

    @IBOutlet var button: NSButton?

    @IBAction func pressButton(sender: AnyObject?) {
        let mainStoryboard: NSStoryboard = NSStoryboard(name: "Main", bundle: nil)
        guard let windowController = mainStoryboard.instantiateControllerWithIdentifier("Popover") as? NSViewController else { return }

        popover.contentViewController = windowController
        popover.behavior = .Transient
        popover.showRelativeToRect(button!.bounds, ofView: sender as! NSView, preferredEdge: .MaxY)
    }

}