NSSavePanel 附件视图:为什么我的按钮不显示?



我正在创建一个带有包含单个复选框的附件视图的保存面板。当我使用以下方法创建按钮时,我可以让它工作:

NSButton(checkboxWithTitle: "Check Me", target: self, action: #selector(checkBoxSelected))

但这给了我一个警告,这个特定的NSButton初始值设定项需要macOS 10.12,我需要支持10.10。

这是我的保存面板设置:

@IBAction func save(_ sender: NSButton) {
    let savePanel = NSSavePanel()
    savePanel.accessoryView = accessoryView()
    savePanel.runModal()
}

这是我在Sierra中创建配件视图的方式

func accessoryView() -> NSView {
    let checkbox = NSButton(checkboxWithTitle: "Check Me", target: self, action: #selector(checkBoxSelected))
    let view = NSView(frame: NSRect(x: 0, y: 0, width: 400, height: 100))
    view.addSubview(checkbox)
    return view
}

但这不起作用(按钮没有出现)

func accessoryView() -> NSView {
    let checkbox = NSButton()
    checkbox.setButtonType(NSSwitchButton)
    checkbox.title = "Check Me"
    checkbox.state = 1
    checkbox.target = self
    checkbox.action = #selector(checkBoxSelected)
    let view = NSView(frame: NSRect(x: 0, y: 0, width: 400, height: 100))
    view.addSubview(checkbox)
    return view
}

知道了。

需要使用 NSButton.init(frame:)

谢谢

最新更新