The code below does not work properly in macos sonoma. I tested it on multiple Macs (mini, m1, intel), but it does not work the same way. (Normal operation in sonoma preview version and previous versions)
NSOpenPanel* openPanel = [NSOpenPanel openPanel]
Symptoms:
When you press the button, the cursor changes to a whirlwind icon. My application and another system service (openAndSavePanelService) become "Not Responding".
However, after a few minutes, this condition is resolved and my application returns to normal, but openAndSavePanelService continues to be in the "Not Responding" state.
Suppose:
Looking at the attached spindump, it is assumed that when openPanel init is called, a problem occurs in the process of communicating with xpc and the system service (openAndSavePanelService) for displaying the dialog box.
What I tried:
-
Without creating an instance when pressing the button NSOpenPanel* g_openPanel = [NSOpenPanel openPanel] When the task is attempted in main and the button is pressed, openPanel was attempted with the created instnace, but failed.
-
Tried to work with NSOpenPanel* g_openPanel = [NSOpenPanel openPanel] via dispatch_async(dispatch_get_main_queue(), { ... }) but failed.
I found similar questions on forums but they didn't help. https://developer.apple.com/forums/thread/104442?answerId=332068022#332068022
Project environment:
- Cocoa project
- Application is agent(UIElement)
- Hardened Runtime (apple event checked)
- No Sandbox
- Network Extension
- System Extension
- Deployment Target: 10.9
Could it be a permission issue? Is there anything else worth trying?