NSSavePanel
是 macOS 上的一个 UI 组件,用于提示用户选择一个文件保存位置。默认情况下,当用户尝试关闭 NSSavePanel
而没有进行任何操作时,系统会发出蜂鸣声以提示用户。如果你希望 NSSavePanel
显示为工作表(sheet)而不是发出蜂鸣声,可以通过设置 canClose
属性来实现。
NSSavePanel
默认是一个模态对话框。canClose
属性,可以将 NSSave窗口
显示为工作表。NSSavePanel
可以提供更好的用户体验。要避免 NSSavePanel
发出蜂鸣声并显示为工作表,可以在创建 NSSavePanel
后设置其 canClose
属性为 YES
。以下是一个示例代码:
import Cocoa
let savePanel = NSSavePanel()
// 设置 NSSavePanel 的属性
savePanel.title = "Save File"
savePanel.nameFieldStringValue = "DefaultFileName"
savePanel.allowedFileTypes = ["txt"]
// 设置 canClose 属性为 YES,以避免发出蜂鸣声并显示为工作表
savePanel.canClose = true
// 显示 NSSavePanel
let result = savePanel.runModal()
if result == .OK {
if let url = savePanel.url {
// 处理保存文件的逻辑
print("File will be saved at: \(url)")
}
}
通过上述方法,你可以确保 NSSavePanel
显示为工作表,并且不会在用户尝试关闭时发出蜂鸣声。
领取专属 10元无门槛券
手把手带您无忧上云