[file_selector_macos] Do not set nameFieldStringValue for NSOpenPanel (#9324)

file_selector_macos is trying to set [`nameFieldStringValue`](https://developer.apple.com/documentation/appkit/nssavepanel/namefieldstringvalue) for an `NSOpenPanel`. However, `nameFieldStringValue` does not support `NSOpenPanel`, it only supports `NSSavePanel`.

This PR does not set `nameFieldStringValue` if using `NSOpenPanel`. It also updates the tests to verify it works for `NSSavePanel` and not `NSOpenPanel`.

![Screenshot 2025-05-27 at 11 10 40 AM](https://github.com/user-attachments/assets/6af2016b-da93-482d-a5a2-5aeeac1abb47)

Fixes https://github.com/flutter/flutter/issues/169510.

## Pre-Review Checklist

[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
diff --git a/packages/file_selector/file_selector_macos/CHANGELOG.md b/packages/file_selector/file_selector_macos/CHANGELOG.md
index 1c366c6..d8f59fe 100644
--- a/packages/file_selector/file_selector_macos/CHANGELOG.md
+++ b/packages/file_selector/file_selector_macos/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 0.9.4+3
 
+* Updates configuration to not set `nameFieldStringValue` for `NSOpenPanel`.
 * Updates minimum supported SDK version to Flutter 3.27/Dart 3.6.
 
 ## 0.9.4+2
diff --git a/packages/file_selector/file_selector_macos/example/macos/RunnerTests/RunnerTests.swift b/packages/file_selector/file_selector_macos/example/macos/RunnerTests/RunnerTests.swift
index 304646a..12420d1 100644
--- a/packages/file_selector/file_selector_macos/example/macos/RunnerTests/RunnerTests.swift
+++ b/packages/file_selector/file_selector_macos/example/macos/RunnerTests/RunnerTests.swift
@@ -108,7 +108,8 @@
     XCTAssertNotNil(panelController.openPanel)
     if let panel = panelController.openPanel {
       XCTAssertEqual(panel.directoryURL?.path, "/some/dir")
-      XCTAssertEqual(panel.nameFieldStringValue, "a name")
+      // nameFieldStringValue is not set for NSOpenPanel, only for NSSavePanel
+      XCTAssertNotEqual(panel.nameFieldStringValue, "a name")
       XCTAssertEqual(panel.prompt, "Open it!")
     }
   }
@@ -343,6 +344,7 @@
     let called = XCTestExpectation()
     let options = SavePanelOptions(
       directoryPath: "/some/dir",
+      nameFieldStringValue: "a name",
       prompt: "Save it!")
     plugin.displaySavePanel(options: options) { result in
       switch result {
@@ -358,6 +360,7 @@
     XCTAssertNotNil(panelController.savePanel)
     if let panel = panelController.savePanel {
       XCTAssertEqual(panel.directoryURL?.path, "/some/dir")
+      XCTAssertEqual(panel.nameFieldStringValue, "a name")
       XCTAssertEqual(panel.prompt, "Save it!")
     }
   }
diff --git a/packages/file_selector/file_selector_macos/macos/file_selector_macos/Sources/file_selector_macos/FileSelectorPlugin.swift b/packages/file_selector/file_selector_macos/macos/file_selector_macos/Sources/file_selector_macos/FileSelectorPlugin.swift
index e54e912..d231aeb 100644
--- a/packages/file_selector/file_selector_macos/macos/file_selector_macos/Sources/file_selector_macos/FileSelectorPlugin.swift
+++ b/packages/file_selector/file_selector_macos/macos/file_selector_macos/Sources/file_selector_macos/FileSelectorPlugin.swift
@@ -92,7 +92,13 @@
       panel.directoryURL = URL(fileURLWithPath: directoryPath)
     }
     if let suggestedName = options.nameFieldStringValue {
-      panel.nameFieldStringValue = suggestedName
+
+      // nameFieldStringValue is not used in NSOpenPanel (see header). Setting it will cause a log
+      // ("Ignoring NSSavePanel method sent to NSOpenPanel: setNameFieldStringValue:") that may be
+      // confusing to users.
+      if !(panel is NSOpenPanel) {
+        panel.nameFieldStringValue = suggestedName
+      }
     }
     if let prompt = options.prompt {
       panel.prompt = prompt
diff --git a/packages/file_selector/file_selector_macos/pubspec.yaml b/packages/file_selector/file_selector_macos/pubspec.yaml
index 11f7ca3..365dff8 100644
--- a/packages/file_selector/file_selector_macos/pubspec.yaml
+++ b/packages/file_selector/file_selector_macos/pubspec.yaml
@@ -2,7 +2,7 @@
 description: macOS implementation of the file_selector plugin.
 repository: https://github.com/flutter/packages/tree/main/packages/file_selector/file_selector_macos
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22
-version: 0.9.4+2
+version: 0.9.4+3
 
 environment:
   sdk: ^3.6.0