Hey Sebastian Excellent catch!! I think I see the bug. I will work on a fix later on today. It’s a bit early for me here at the moment.
Thanks for the heads up! Gregory Casamento GNUstep Lead Developer / Black Lotus, Principal Consultant http://www.gnustep.org - http://heronsperch.blogspot.com https://www.patreon.com/bePatron?u=352392 - Become a Patron https://www.openhub.net/languages/objective_c https://www.gofundme.com/f/cacao-linux-a-gnustep-reference-implementation On Thu, Aug 29, 2024 at 03:38 Sebastian Reitenbach < [email protected]> wrote: > Hi, > > I'm trying to create a document based app with ProjectCenter and Gorm, > following different advices, > it boils down to use NSBundles loadNibNamed: owner: topLevelObjects: > Then afterward, find the window in the topLevelObjects, that I want to > have my key window, and make it makeKeyAndOrderFront: > > Whatever I do, the topLevelObjects I get returned are empty. > > To demonstrate, I just created a New Application in ProjectCenter, opened > the Interface in Gorm, and > dragged a NSWindow into the Objects. Example code here: > https://github.com/buzzdeee/testTopLevelObjects > > Then added this to AppController.m applicationDidFinishLaunching: > > NSLog(@"here in AppController applicationDidFinishLaunching..."); > > NSBundle *mainBundle = [NSBundle mainBundle]; > NSArray *topLevelObjects = nil; > NSLog(@"going to load .gorm file"); > BOOL success = [mainBundle loadNibNamed:@"Test5" owner:self > topLevelObjects:&topLevelObjects]; > NSLog(@"topLevelObjects: %@", topLevelObjects); > if (success) { > NSLog(@"Successfully loaded Test5.gorm"); > > if (topLevelObjects == nil || [topLevelObjects count] == 0) { > NSLog(@"No top-level objects were loaded."); > } else { > NSLog(@"Top-level objects: %@", topLevelObjects); > for (id obj in topLevelObjects) { > NSLog(@"Loaded object: %@", NSStringFromClass([obj > class])); > } > } > } else { > NSLog(@"Failed to load Test5.gorm"); > } > } > > The output is: > 2024-08-29 09:20:30.103 Test5[81465:10651290713480] here in AppController > applicationDidFinishLaunching... > 2024-08-29 09:20:30.104 Test5[81465:10651290713480] going to load .gorm > file > 2024-08-29 09:20:30.113 Test5[81465:10651290713480] topLevelObjects: (null) > 2024-08-29 09:20:30.113 Test5[81465:10651290713480] Successfully loaded > Test5.gorm > 2024-08-29 09:20:30.113 Test5[81465:10651290713480] No top-level objects > were loaded. > > When in Gorm, I enable "Visible at launch" for the NSWindow object, output > changes to: > > 2024-08-29 09:13:57.990 Test5[1172:4346915151048] here in AppController > applicationDidFinishLaunching... > 2024-08-29 09:13:57.990 Test5[1172:4346915151048] going to load .gorm file > 2024-08-29 09:13:57.998 Test5[1172:4346915151048] Exception occurred while > loading model: Index 3 is out of range 3 (in 'objectAtIndex:') > 2024-08-29 09:13:57.998 Test5[1172:4346915151048] Failed to load Gorm > 2024-08-29 09:13:57.998 Test5[1172:4346915151048] topLevelObjects: (null) > 2024-08-29 09:13:57.998 Test5[1172:4346915151048] Failed to load Test5.gorm > > However, the .gorm file still loads, and I get to see the menu and window. > But I guess that is because, NSMainNibFile = "Test5.gorm"; in my Info.plist. > > In any case, shouldn't there be some topLevelObjects in the .gorm file? > > latest gnustep-make/base/gui/back/objc2/ProjectCenter releases, Gorm-1.3.1 > > thanks, > Sebastian > > >
