【问题标题】:Select file or directory in SwiftUI in an AppKit App [duplicate]在 AppKit 应用程序中选择 SwiftUI 中的文件或目录 [重复]
【发布时间】:2021-01-03 18:14:50
【问题描述】:

如何在 SwiftUI 中显示文件对话框以选择目录或文件。

我认为使用 NSViewRepresentable 来包装 NSOpenPanel 是行不通的,因为它需要 NSView 而不是 NSPanel。

还有其他想法、提示或链接吗? 我发现的一切都是关于 UIKit 的。

【问题讨论】:

标签: macos swiftui appkit


【解决方案1】:

导入 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)
            }
        }
    }
}

亲切的问候, Mac用户T

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多