I updated my OS yesterday, and now my modal window doesn’t work (which probably means I’m doing it wrong and just got lucky before).
I created the window by asking XCode to create a subclass of NSWindowController and making sure the “also create xib” checkbox was checked. Then I designed the UI, outlets and actions, and wrote the short bit of code that’s supposed to call up the window in my document controller. The window’s name is OpenXmlExportSettings, and the code that displays it looks like this: if ( self.openXmlExportSettings == nil ) { self.openXmlExportSettings = [[OpenXmlExportSettings alloc] init]; } OpenXmlExportSettings* settings = self.openXmlExportSettings; NSInteger result = [NSApp runModalForWindow:settings.window]; if ( result == NSModalResponseAbort ) { return; } // After this we do useful things with the selected settings... I haven’t made any changes to this since last week when it worked, but like I said, that doesn’t mean I’m sure this was good code to begin with. Now when runModalForWindow: is called, I get this crash before the window ever appears: 2015-02-08 16:24:04.155 MyApp[2989:720882] *** Assertion failure in -[NSApplication _commonBeginModalSessionForWindow:relativeToWindow:modalDelegate:didEndSelector:contextInfo:], /SourceCache/AppKit/AppKit-1344.72/AppKit.subproj/NSApplication.m:4048 2015-02-08 16:24:04.159 MyApp[2989:720882] An uncaught exception was raised 2015-02-08 16:24:04.159 MyApp[2989:720882] Modal session requires modal window 2015-02-08 16:24:04.165 MyApp[2989:720882] ( 0 CoreFoundation 0x00007fff8679a66c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x00007fff874a276e objc_exception_throw + 43 2 CoreFoundation 0x00007fff8679a44a +[NSException raise:format:arguments:] + 106 3 Foundation 0x00007fff93e083a9 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 195 4 AppKit 0x00007fff8a278d27 -[NSApplication _commonBeginModalSessionForWindow:relativeToWindow:modalDelegate:didEndSelector:contextInfo:] + 637 5 AppKit 0x00007fff8a2825e7 -[NSApplication beginModalSessionForWindow:] + 37 6 AppKit 0x00007fff8a282501 -[NSApplication runModalForWindow:] + 98 7 MyApp 0x0000000100004050 -[Document exportToOpenXml:] + 320 8 libsystem_trace.dylib 0x00007fff935e6cd7 _os_activity_initiate + 75 9 AppKit 0x00007fff8a14db71 -[NSApplication sendAction:to:from:] + 452 10 AppKit 0x00007fff8a167cbe -[NSMenuItem _corePerformAction] + 382 11 AppKit 0x00007fff8a1679dc -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114 12 libsystem_trace.dylib 0x00007fff935e6cd7 _os_activity_initiate + 75 13 AppKit 0x00007fff8a1b54e0 -[NSMenu performActionForItemAtIndex:] + 131 14 AppKit 0x00007fff8a1b5446 -[NSMenu _internalPerformActionForItemAtIndex:] + 35 15 AppKit 0x00007fff8a1b5292 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 107 16 AppKit 0x00007fff8a15d5db NSSLMMenuEventHandler + 724 17 HIToolbox 0x00007fff8b34b98c _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1260 18 HIToolbox 0x00007fff8b34adce _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 386 19 HIToolbox 0x00007fff8b35f8f6 SendEventToEventTarget + 40 20 HIToolbox 0x00007fff8b394f25 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 428 21 HIToolbox 0x00007fff8b3c864d SendMenuCommandWithContextAndModifiers + 59 22 HIToolbox 0x00007fff8b3c85f4 SendMenuItemSelectedEvent + 188 23 HIToolbox 0x00007fff8b3c84c6 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 96 24 HIToolbox 0x00007fff8b3d0071 _ZL14MenuSelectCoreP8MenuData5PointdjPP13OpaqueMenuRefPt + 702 25 HIToolbox 0x00007fff8b3cfc5e _HandleMenuSelection2 + 446 26 AppKit 0x00007fff8a0e38be _NSHandleCarbonMenuEvent + 277 27 AppKit 0x00007fff89f7f2f0 _DPSNextEvent + 1843 28 AppKit 0x00007fff89f7e730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194 29 AppKit 0x00007fff89f72593 -[NSApplication run] + 594 30 AppKit 0x00007fff89f5da14 NSApplicationMain + 1832 31 MyApp 0x0000000100016b32 main + 34 32 libdyld.dylib 0x00007fff866175c9 start + 1 ) I’m focusing on that line which says “Modal session requires modal window.” Could that mean there’s an incorect setting I don’t know about in the NIB file? Or do I have to do something to tell the window controller to wake up the window before using it? — Charles _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com