NSOpenPanel - 标题未显示且窗口未关闭

时间:2017-04-26 16:53:25

标签: swift macos nsopenpanel

我正在构建一个工具栏应用程序,其中包含一个显示NSOpenPanel的选项,以便让用户选择一个文件夹。 它工作正常,除了标题没有显示在NSOpenPanel上,并且我必须使用一种棘手的方法在“确定”按钮被击中后关闭窗口。

这是我的代码:

let dialogue = NSOpenPanel()
                dialogue.title                   = "Choisissez un répertoire"
                dialogue.canChooseFiles          = false
                dialogue.showsResizeIndicator    = true
                dialogue.showsHiddenFiles        = false
                dialogue.canChooseDirectories    = true
                dialogue.canCreateDirectories    = false
                dialogue.allowsMultipleSelection = false
                dialogue.allowedFileTypes        = [""]

    if (dialogue.runModal() == NSModalResponseOK) 
    {

                    let result = dialogue.url

                    dialogue.setIsMiniaturized(true)
                    dialogue.setIsVisible(false)
                    dialogue.close()

                    if (result != nil)
                    {
                      let path = result!.path

                    }
                    else
                    {
                      return
                    }
    }

虽然已配置,但我还没有找到显示标题的方法。 在关闭NSOpenPanel之前,我必须使用setIsMiniaturized(true)和setIsVisible(false),否则它只在流程结束时关闭。

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

自OSX 10.11起,标题不再显示。如果您确实需要显示一些文字,可以滥用message属性:

let fileDialog = NSOpenPanel()
fileDialog.message = "Your message"