mic*_*ica 1 macos appkit swiftui
如何在 SwiftUI 中显示文件对话框来选择目录或文件。
我认为使用 NSViewRepresentable 来包装 NSOpenPanel 是行不通的,因为它需要 NSView 而不是 NSPanel。
还有其他想法、提示或链接吗?我发现的一切都是关于 UIKit 的。
import SwiftUI
struct FolderSelector: View {
var body: some View {
Button("Choose Folder") {
self.selectFolder()
}
}
func selectFolder() {
let folderChooserPoint = CGPoint(x: 0, y: 0)
let folderChooserSize = CGSize(width: 500, height: 600)
let folderChooserRectangle = CGRect(origin: folderChooserPoint, size: folderChooserSize)
let folderPicker = NSOpenPanel(contentRect: folderChooserRectangle, styleMask: .utilityWindow, backing: .buffered, defer: true)
folderPicker.canChooseDirectories = true
folderPicker.canChooseFiles = true
folderPicker.allowsMultipleSelection = true
folderPicker.canDownloadUbiquitousContents = true
folderPicker.canResolveUbiquitousConflicts = true
folderPicker.begin { response in
if response == .OK {
let pickedFolders = folderPicker.urls
self.selectedFolder.getFileList(at: pickedFolders)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4233 次 |
| 最近记录: |