【问题标题】:Customizing Appearance of NSAlert Checkboxes and Buttons自定义 NSAlert 复选框和按钮的外观
【发布时间】:2019-11-10 19:12:32
【问题描述】:

似乎 NSAlert 的默认外观不太理想。例如,当我单击一个复选框时,该复选框会消失,并且焦点按钮有白色文本。

[编辑] 我应该提到这是一个金属应用程序。

这是创建 NSAlert 的代码(使用 SnapKit 进行约束):

                let aview = NSView(frame: NSRect(x: 0, y: 0, width: 150, height: 70))
                let btn = NSButton(checkboxWithTitle: "Sound", target: nil, action: nil)
                let btn1 = NSButton(checkboxWithTitle: "Music", target: self, action: #selector(handleMusicToggle(_:)))
                aview.addSubview(btn)
                aview.addSubview(btn1)

                btn.snp.makeConstraints { (make) in
                    make.leading.equalToSuperview()
                    make.top.bottom.equalToSuperview()
                }
                btn1.snp.makeConstraints { (make) in
                    make.leading.equalTo(btn.snp.trailing)
                    make.trailing.equalToSuperview()
                    make.top.bottom.equalToSuperview()
                }

                let alert = NSAlert()
                alert.messageText = "PAUSED"
                alert.informativeText = "BLOKKIT is paused"
                alert.alertStyle = .warning
                alert.accessoryView = aview
                alert.addButton(withTitle: "RESUME")
                alert.addButton(withTitle: "QUIT")
                let response = alert.runModal()

这是 NSAlert 外观的屏幕截图:

【问题讨论】:

  • 我在 Xcode 11.2 beta 2 上进行了测试,没有使用 sip,而是直接创建了 btn 和 btn1 帧。我不明白这个问题,音乐复选框是好的。并且 RESUME 显示在蓝色背景上。尝试移除 sap 并手动设置框架,只是为了确认。
  • 我尝试了 11.2.1 GM 种子。外观相同。

标签: swift macos cocoa


【解决方案1】:

有关信息,这是我得到的:

【讨论】:

  • 我发现使用基本 MacOS 模板创建项目时 NSAlert 看起来不错,但使用跨平台游戏模板创建项目时它看起来像我的屏幕截图。
猜你喜欢
  • 2016-09-25
  • 2017-05-02
  • 2014-02-15
  • 2012-01-07
  • 2010-11-07
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多