【问题标题】:Change appearance of a popover created using a popover segue in OS X在 OS X 中更改使用 popover segue 创建的 popover 的外观
【发布时间】:2014-12-26 18:32:14
【问题描述】:

我正在尝试使用故事板为 Yosemite 构建一个简单的应用程序。创建一个弹出框转场很容易——转场是通过单击按钮创建我的故事板中的NSViewController,并且样式设置为弹出框。这很好用,但问题是,我想改变这个弹出框的外观。它似乎默认为 Vibrant Dark 外观,但我希望它是 Vibrant Light 或 Aqua。我假设这里发生的事情是在幕后,正在创建一个 NSPopover 以包含我用我的 segue 显示的视图控制器,但我不知道如何访问这个 NSPopover 对象 -故事板只允许我访问我正在显示的视图控制器,并且没有任何NSPopover 对象可用于界面构建器。

我想要做的就是改变我在故事板中创建的弹出框的外观...有什么建议吗?谢谢!

【问题讨论】:

  • 您应该将@inkbits 的答案标记为已接受以感谢他/她,因为它是正确的。对一个好问题投赞成票,因为我一直在寻找同样的东西(我没有想到要针对弹出框的 window 进行外观更改;我的目标是视图,但什么都不是发生)。

标签: macos cocoa swift storyboard osx-yosemite


【解决方案1】:

在视图控制器中覆盖 viewWillAppear 并更新视图窗口的外观:

override func viewWillAppear() {
    self.view.window?.appearance = NSAppearance(named: NSAppearanceNameVibrantDark)
}

你的外表可以是standard appearances中的任何一个

【讨论】:

  • 在过去的十分钟里一直对这个问题感到恼火。每天学些新东西。谢谢,并投赞成票。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
相关资源
最近更新 更多