有人知道为什么在ElCapitan GM和Xcode 7 GM中,popover会出现在视图之外吗?
弹出窗口由"按钮"触发。
下图是一个新项目,没有我编写的代码,只需一个按钮。
是一个错误还是一个新的"功能"?
答案 0 :(得分:1)
我刚尝试过,似乎你无法在故事板中设置弹出窗口。也许这确实是新版本中的一个错误。
要以编程方式显示弹出窗口,请设置弹出窗口视图控制器的StoryboardID,例如:“PopoverViewController”。下面,它在主视图控制器中实现为一个惰性var,所以它第一次被实例化,第一次被引用。
将IBAction从按钮连接到主视图控制器 - 这里是一个名为“displayPopover”的函数。 “guard let”语句确保发送者可以被强制转换为NSButton。
然后,只需致电:
presentViewController:asPopover...
lazy var popoverViewController: NSViewController = {
return self.storyboard!.instantiateControllerWithIdentifier("PopoverViewController")
as! NSViewController
}()
@IBAction func displayPopover(sender: AnyObject) {
guard let button = sender as? NSButton else {return}
self.presentViewController(popoverViewController, asPopoverRelativeToRect: button.frame, ofView: button, preferredEdge: NSRectEdge.MaxY, behavior: NSPopoverBehavior.Transient)
}