NSSavePanel accessoryView:为什么我的按钮没有出现?

时间:2016-12-30 20:10:33

标签: cocoa button accessoryview nssavepanel

我正在使用包含单个复选框的accessoryView创建一个保存面板。使用以下命令创建按钮时,我可以使用它:

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

但是这给了我一个警告,这个特定的NSButton初始化程序需要macOS 10.12,我需要支持10.10。

这是我的savePanel设置:

@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
}

1 个答案:

答案 0 :(得分:0)

知道了。

需要使用NSButton.init(frame:)

由于