为什么在 ElCapitan GM 和 Xcode 7 GM 中弹出窗口出现在视图之外?
Why in ElCapitan GM and Xcode 7 GM the popover appears outside of the view?
有人知道为什么在 ElCapitan GM 和 Xcode 7 GM 中弹出窗口出现在视图之外吗?
弹出窗口由 "Button" 触发。
下图是一个新项目,没有我写的代码,只有一个按钮。
这是错误还是新的 "feature"?
刚刚试了一下,Storyboard里好像不能设置popover anchor。也许这确实是新版本中的一个错误。
要以编程方式显示弹出窗口,请设置弹出窗口视图控制器的 StoryboardID,例如:"PopoverViewController"。下面,它在主视图控制器中作为惰性变量实现,因此它只实例化一次,即第一次被引用时。
将一个 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)
}
有人知道为什么在 ElCapitan GM 和 Xcode 7 GM 中弹出窗口出现在视图之外吗?
弹出窗口由 "Button" 触发。
下图是一个新项目,没有我写的代码,只有一个按钮。
这是错误还是新的 "feature"?
刚刚试了一下,Storyboard里好像不能设置popover anchor。也许这确实是新版本中的一个错误。
要以编程方式显示弹出窗口,请设置弹出窗口视图控制器的 StoryboardID,例如:"PopoverViewController"。下面,它在主视图控制器中作为惰性变量实现,因此它只实例化一次,即第一次被引用时。
将一个 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)
}