Swift 自定义NSAlert复选框和按钮的外观
NSAlert的默认外观似乎不太理想。例如,当我单击一个复选框时,该复选框将消失,并且焦点按钮具有白色文本 [编辑]我应该提到这是一个金属应用程序 以下是创建NSAlert的代码(使用SnapKit进行约束): 以下是NSAlert外观的屏幕截图:Swift 自定义NSAlert复选框和按钮的外观,swift,macos,cocoa,Swift,Macos,Cocoa,NSAlert的默认外观似乎不太理想。例如,当我单击一个复选框时,该复选框将消失,并且焦点按钮具有白色文本 [编辑]我应该提到这是一个金属应用程序 以下是创建NSAlert的代码(使用SnapKit进行约束): 以下是NSAlert外观的屏幕截图: 有关信息,以下是我得到的信息: 我在Xcode 11.2 beta 2上测试,没有使用sip,而是直接创建btn和btn1帧。我不明白这个问题,音乐复选框是好的。简历显示在蓝色背景上。尝试删除sap并手动设置帧,只是为了确认。重复我在11.2.1 G
有关信息,以下是我得到的信息:
我在Xcode 11.2 beta 2上测试,没有使用sip,而是直接创建btn和btn1帧。我不明白这个问题,音乐复选框是好的。简历显示在蓝色背景上。尝试删除sap并手动设置帧,只是为了确认。重复我在11.2.1 GM种子上尝试的内容。外观相同。我发现使用基本MacOS模板创建项目时,NSAlert看起来不错,但使用跨平台游戏模板创建项目时,它看起来像我的屏幕截图。
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()