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
>
>
>

Reply via email to