macos - Catalina 中的 NSButton 没有选中状态
问题描述
我在 Catalina 上设置了一个带有以下代码的 NSButton 复选框(Mojave 很好):
let checkbox = NSButton(frame: NSRect(x: 0, y: 0, width: 200, height: 32))
checkbox.setButtonType(.switch)
checkbox.title = "Sustain"
checkbox.state = .off
self.view.addSubview(checkbox)
加载应用程序时看起来不错
但是一旦我检查它,我期望在那里的刻度线就不存在了
如果我加载视觉层次结构调试器,我可以看到它很好,我尝试将此代码直接放到一个新应用程序中并且它可以工作,但是在我的应用程序中它是隐藏的,几乎就像某些东西正在覆盖它......任何帮助表示赞赏
它也发生在 NSPopUpButtons 上……没有边框:-s
更新:2019 年 10 月 14 日
正如评论中提到的,它似乎是一个 Xcode 11 错误,Xcode 10.3 在 Catalina 上正确呈现了按钮。
更新:2019 年 10 月 10 日
奇怪的是,创建一个子类并设置一个 CIFilter 会显示复选框项目,您只需对一个 NSButton 执行此操作,然后突然间,所有其余的工作:-s
import AppKit
class Checkbox : NSButton {
init() {
super.init(frame: .zero)
addFilter()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
addFilter()
}
// add random cifilter
func addFilter() {
let colorFilter = CIFilter(name: "CIFalseColor")!
colorFilter.setDefaults()
colorFilter.setValue(CIColor(cgColor: NSColor.black.cgColor), forKey: "inputColor0")
colorFilter.setValue(CIColor(cgColor: NSColor.white.cgColor), forKey: "inputColor1")
self.contentFilters = [colorFilter]
}
}
对下拉菜单执行相同操作,但在您单击它之前它是不可见的……开始感觉像是 Catalina 错误
解决方案
推荐阅读
- reactjs - 使用 redux-saga,我如何根据动作参数和类型来进行领导?
- bash - eval$(docker-machine 环境
) 似乎在 shell 脚本中工作,但立即失败 - c - 将指针数组传递给函数时如何发生回调?
- ansible - 如何在ansible中读取文件的特定部分
- javascript - 角度拖放表单构建器
- c# - 获取选定的数据库名称 - SSMS 扩展
- css - Div 分为五个 traingles
- javascript - JavaScript 为多个滑块输出 html 范围滑块值
- reactjs - 如何使用 ReactJs 中的样式组件触发状态更改动画
- python - setup.py 没有安装 swig 扩展模块