Simplify configuration of text field delegate
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Sat, 6 Apr 2024 14:11:29 +0000 (22:11 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 17 Apr 2024 08:39:04 +0000 (16:39 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/ShareOptionsView.swift

index 893d6bb3ce9a02c776f0ab4216165185686b2c04..d3f41c79c8c88ad16ef0d2108dabbfd9cb5df8ed 100644 (file)
@@ -42,13 +42,16 @@ class ShareOptionsView: NSView {
                 Logger.shareOptionsView.error("Could not configure suggestions data source.")
                 return
             }
-            suggestionsWindowController.dataSource = ShareeSuggestionsDataSource(kit: kit)
-            suggestionsWindowController.parentTextField = shareRecipientTextField
 
-            suggestionsTextFieldDelegate.suggestionsWindowController = suggestionsWindowController
-            shareRecipientTextField.delegate = suggestionsTextFieldDelegate
-
-            suggestionsWindowController.begin(for: shareRecipientTextField)
+            suggestionsTextFieldDelegate.suggestionsDataSource = ShareeSuggestionsDataSource(
+                kit: kit
+            )
+            suggestionsTextFieldDelegate.confirmationHandler = { suggestion in
+                guard let sharee = suggestion?.data as? NKSharee else { return }
+                self.shareRecipientTextField.stringValue = sharee.shareWith
+                Logger.shareOptionsView.debug("Chose sharee \(sharee.shareWith, privacy: .public)")
+            }
+            suggestionsTextFieldDelegate.targetTextField = shareRecipientTextField
         }
     }
     var dataSource: ShareTableViewDataSource?