Chr*_*ris 6 macos cocoa appkit nsbutton macos-catalina
我在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)
Run Code Online (Sandbox Code Playgroud)
加载应用程序时看起来不错
但是,一旦我检查了一下,我希望出现的刻度线就不存在了
如果我加载了可视层次结构调试器,就可以很好地看到它,我已经尝试将这段代码直接放到新的应用程序中并且可以工作,但是在我的应用程序中它是隐藏的,几乎就像是某些东西将其覆盖...任何帮助表示赞赏
它也发生在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]
}
}
Run Code Online (Sandbox Code Playgroud)
对下拉菜单执行相同的操作,但是直到您单击它为止它是不可见的……开始感觉像是Catalina的错误
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |