List focusable

This commit is contained in:
Gerrit Linnemann 2020-08-12 20:19:24 +02:00
parent 43ea6556cb
commit 8ff01612a8
3 changed files with 22 additions and 20 deletions

View File

@ -42,26 +42,27 @@ struct ContentView: View {
List {
ForEach(self.fileList, id: \.self) { yapsFile in
YapsFileCell(yapsFile: yapsFile)
.focusable(true, onFocusChange: { (focusChanged) in
//self.focused = focusChanged
print("focus changed \(focusChanged)")
})
.onTapGesture(perform: {
let selectedImageURL: URL = yapsFile.file
.focusable(true, onFocusChange: { (focusChanged) in
//self.focused = focusChanged
print("focus changed \(focusChanged)")
})
.onTapGesture(perform: {
let selectedImageURL: URL = yapsFile.file
print("pressed \(yapsFile.name)")
print("pressed \(yapsFile.name)")
self.previewImg = FinderHelper.shared.getImageByURL(source: selectedImageURL)
.resizable()
self.previewImg = FinderHelper.shared.getImageByURL(source: selectedImageURL)
.resizable()
Shared.shared.currentFile = yapsFile
})
.onMoveCommand { (direction) in
print("direction: \(direction)")
}
Shared.shared.currentFile = yapsFile
})
}
}
.listStyle(SidebarListStyle())
.focusable()
.onMoveCommand { (direction) in
print("direction: \(direction)")
}
}
.frame(width: 200.0)
@ -73,7 +74,7 @@ struct ContentView: View {
}
}
Text("\(Shared.shared.currentFile.file.absoluteString)")
Text("\(Shared.shared.currentFile.file.path)")
.multilineTextAlignment(.leading)
.lineLimit(1)
}

View File

@ -22,8 +22,8 @@ class FinderHelper {
dialog.showsResizeIndicator = true
dialog.showsHiddenFiles = false
dialog.allowsMultipleSelection = false
dialog.canChooseFiles = false
dialog.canChooseDirectories = true
dialog.canChooseFiles = false
dialog.canChooseDirectories = true
if(dialog.runModal() == NSApplication.ModalResponse.OK) {
let result = dialog.url

View File

@ -10,6 +10,7 @@ import Foundation
class Shared: ObservableObject {
static let shared = Shared()
var currentFile: YapsFile = YapsFile(name: "EMPTY", file: .init(fileURLWithPath: "Y"))
var destination: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
var destinationDefined: Bool = false