If I try this:
NSOpenPanel * openPanel = [NSOpenPanel openPanel];
openPanel.canChooseDirectories = YES;
openPanel.canChooseFiles = YES;
openPanel.canCreateDirectories = NO;
openPanel.allowsMultipleSelection = YES;
openPanel.title = @"Select files or folders to import";
[openPanel beginSheetModalForWindow: self.window
completionHandler: ^(NSInteger result) {
if (result != NSFileHandlingPanelOKButton)
{
return;
}
}];
It sometimes works, but sometimes I get error messages such as:
*** Assertion failure in -[NSRemoteView serviceViewSubservice], /SourceCache/ViewBridge/ViewBridge-46.2/NSRemoteView.m:2679
2014-03-10 09:34:35.592 AppWage[52168:303] An uncaught exception was raised
2014-03-10 09:34:35.593 AppWage[52168:303] invalid
2014-03-10 09:34:35.593 AppWage[52168:303] (
0 CoreFoundation 0x00007fff8a59825c __exceptionPreprocess + 172
1 libobjc.A.dylib 0x00007fff881fce75 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8a598038 +[NSException raise:format:arguments:] + 104
3 Foundation 0x00007fff925ebd41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
4 ViewBridge 0x00007fff8736f8b0 -[NSRemoteView serviceViewSubservice] + 149
5 ViewBridge 0x00007fff873716d6 -[NSRemoteView viewServiceMarshalProxy:withErrorHandler:] + 43
6 ViewBridge 0x00007fff87366a40 -[NSRemoteView syncServiceWindow] + 32
7 ViewBridge 0x00007fff87367054 -[NSRemoteView didSetOriginOrSize:] + 201
8 ViewBridge 0x00007fff87367706 -[NSRemoteView setFrameSize:] + 231
9 AppKit 0x00007fff9042df3e -[NSWindow _oldPlaceWindow:] + 1644
10 AppKit 0x00007fff9042cf8c -[NSWindow _setFrameCommon:display:stashSize:] + 1633
11 ViewBridge 0x00007fff87373711 -[NSRemoteView serviceWindowDidResizeInProgress:] + 440
12 ViewBridge 0x00007fff873737d0 -[NSRemoteView serviceWindowDidResize:] + 180
13 ViewBridge 0x00007fff873707cf -[NSRemoteView advanceToConfigPhase] + 2458
14 ViewBridge 0x00007fff8737177c -[NSRemoteView viewServiceMarshalProxy:withErrorHandler:] + 209
15 ViewBridge 0x00007fff8736d9b7 -[NSRemoteView sendFontSmoothingBackgroundColorToService:] + 436
16 ViewBridge 0x00007fff8736e725 -[NSRemoteView viewDidMoveToWindow] + 197
17 AppKit 0x00007fff90323320 -[NSView _setWindow:] + 2899
18 AppKit 0x00007fff90320964 -[NSView addSubview:] + 364
19 AppKit 0x00007fff90334ac3 -[NSFrameView addSubview:] + 45
20 AppKit 0x00007fff90342df5 -[NSWindow setContentView:] + 511
21 AppKit 0x00007fff90ba9563 -[NSVBSavePanel init] + 287
22 AppKit 0x00007fff9092b389 +[NSSavePanel newRemotePanel] + 309
23 AppKit 0x00007fff9092b445 +[NSSavePanel _crunchyRawUnbonedPanel] + 120
24 AppWage 0x000000010006c99a -[AppDelegate onImportSalesReports:] + 714
25 AppKit 0x00007fff9052a340 -[NSApplication sendAction:to:from:] + 327
26 AppKit 0x00007fff905452a8 -[NSMenuItem _corePerformAction] + 394
27 AppKit 0x00007fff90544fe4 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 117
28 AppKit 0x00007fff9059448d -[NSMenu _internalPerformActionForItemAtIndex:] + 35
29 AppKit 0x00007fff90594309 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 104
30 AppKit 0x00007fff9053b0d6 NSSLMMenuEventHandler + 716
31 HIToolbox 0x00007fff8f5b91d4 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 892
32 HIToolbox 0x00007fff8f5b8787 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 385
33 HIToolbox 0x00007fff8f5cc880 SendEventToEventTarget + 40
34 HIToolbox 0x00007fff8f602640 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 420
35 HIToolbox 0x00007fff8f635238 SendMenuCommandWithContextAndModifiers + 59
36 HIToolbox 0x00007fff8f6351e0 SendMenuItemSelectedEvent + 178
37 HIToolbox 0x00007fff8f6350bf _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 94
38 HIToolbox 0x00007fff8f63d095 _ZL14MenuSelectCoreP8MenuData5PointdjPP13OpaqueMenuRefPt + 718
39 HIToolbox 0x00007fff8f63ccc1 _HandleMenuSelection2 + 446
40 AppKit 0x00007fff904ad73c _NSHandleCarbonMenuEvent + 284
41 AppKit 0x00007fff9030c6be _DPSNextEvent + 2170
42 AppKit 0x00007fff9030ba2b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
43 AppKit 0x00007fff902ffb2c -[NSApplication run] + 553
44 AppKit 0x00007fff902ea913 NSApplicationMain + 940
45 AppWage 0x000000010009a872 main + 34
46 libdyld.dylib 0x00007fff8cfb15fd start + 1
47 ??? 0x0000000000000003 0x0 + 3
If I switch the open panel to be:
[openPanel beginWithCompletionHandler: ^(NSInteger result) {
if (result != NSFileHandlingPanelOKButton) {
return;
}
}];
It works with no error, but then the open panel is no longer a sheet on my main window.
Am I not using the correct way to launch the NSOpenPanel
?
This stopped happening after a reboot of my system. The Mac Developers forum suggestion submitting a bug report so it has been done.