Skip to content

Commit

Permalink
fix: modify multiple folders to change and refresh Finder
Browse files Browse the repository at this point in the history
  • Loading branch information
little-huang committed Sep 9, 2024
1 parent 65ee6f5 commit 01c3b0e
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 15 deletions.
8 changes: 4 additions & 4 deletions FolderColor.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@
CODE_SIGN_ENTITLEMENTS = FolderColor/FolderColor.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_ASSET_PATHS = "\"FolderColor/Preview Content\"";
DEVELOPMENT_TEAM = NPX5YQ2XE8;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -606,7 +606,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 1.0.2;
MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = me.huangbaocheng.FolderColor.FolderColor;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
Expand All @@ -623,7 +623,7 @@
CODE_SIGN_ENTITLEMENTS = FolderColor/FolderColor.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_ASSET_PATHS = "\"FolderColor/Preview Content\"";
DEVELOPMENT_TEAM = NPX5YQ2XE8;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -637,7 +637,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 1.0.2;
MARKETING_VERSION = 1.0.3;
PRODUCT_BUNDLE_IDENTIFIER = me.huangbaocheng.FolderColor.FolderColor;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
Expand Down
Binary file not shown.
37 changes: 26 additions & 11 deletions FolderColor/ColorsListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -261,22 +261,36 @@ struct ColorsListView: ConnectedView {
}
}

func handleDrop(providers: [NSItemProvider], props: ColorsListView.Props) -> Bool {
func handleDrop(providers: [NSItemProvider], props: ColorsListView.Props) {
let dispatchGroup = DispatchGroup()
var handled = false

for provider in providers {
if provider.hasItemConformingToTypeIdentifier("public.file-url") {
provider.loadItem(forTypeIdentifier: "public.file-url", options: nil) { (urlData, error) in
DispatchQueue.main.async {
if let data = urlData as? Data,
let url = URL(dataRepresentation: data, relativeTo: nil),
url.hasDirectoryPath {
describeDroppedURL(url, props: props)
}
let isURL = provider.hasItemConformingToTypeIdentifier("public.url")
if !isURL {
print("not url")
continue
}

handled = true
dispatchGroup.enter()
provider.loadItem(forTypeIdentifier: "public.file-url", options: nil) { (urlData, error) in
DispatchQueue.main.async {
if let data = urlData as? Data,
let url = URL(dataRepresentation: data, relativeTo: nil),
url.hasDirectoryPath {
describeDroppedURL(url, props: props)
// 通知 Finder 文件系统已更改
NSWorkspace.shared.noteFileSystemChanged(url.path)
}
dispatchGroup.leave()
}
return true
}
}
return false

dispatchGroup.notify(queue: DispatchQueue.main) {
print("dispatchGroup notify")
}
}

func initFcColor(props: Props) {
Expand Down Expand Up @@ -359,6 +373,7 @@ struct ColorsListView: ConnectedView {
.frame(width: 400, height: 500)
.onDrop(of: [.fileURL], isTargeted: nil) { providers in
handleDrop(providers: providers, props: props)
return true
} // onDrop end
.onAppear() {
initFcColor(props: props)
Expand Down

0 comments on commit 01c3b0e

Please sign in to comment.