【发布时间】: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()
【问题讨论】:
-
我在 Xcode 11.2 beta 2 上进行了测试,没有使用 sip,而是直接创建了 btn 和 btn1 帧。我不明白这个问题,音乐复选框是好的。并且 RESUME 显示在蓝色背景上。尝试移除 sap 并手动设置框架,只是为了确认。
-
我尝试了 11.2.1 GM 种子。外观相同。