> On 16 Feb 2015, at 18:39, Bill Cheeseman <wjcheese...@gmail.com> wrote:

> 
> Although I follow Mike Ash's advice, I have separate MainMenu.xib and 
> MainWindow.xib files instead of a single window.xib file. My MainMenu.xib 
> contains the application's menu bar but no window. MainMenu.xib is owned by 
> NSApplication, and NSApplication's delegate outlet is connected to my 
> AppDelegate object, which is included in MainMenu.xib. MainMenu.xib is 
> loaded, its included AppDelegate object is instantiated, and its 
> applicationDidFinishLaunching delegate method is called, all automatically at 
> launch due to the way the standard Main file works. My AppDelegate class 
> implements NSApplicationDelegate protocol methods as needed, and it handles a 
> few other things that are of application-wide relevance. It tends to be 
> fairly small and simple.

Same as I have.

> Because MainMenu.xib contains no window, the application has a menu bar but 
> nothing else up to the point where AppDelegate's 
> applicationDidFinishLaunching delegate method is called. The window is 
> contained in MainWindow.xib, which is owned by my MainWindowController class. 
> The applicationDidFinishLaunching delegate method in AppDelegate loads 
> MainWindow.xib by calling initWithWindowNibName (I don't buy Mike's advice to 
> declare a simple init method), and at this point the application has both a 
> menu bar and a window. The window's Visible At Launch behavior is set in 
> MainWindow.xib, so the window appears when the application is launched and 
> MainWindow.xib is loaded, without having to call showWindow (or you can just 
> call showWindow). In AppDelegate's applicationDidFinishLaunching delegate 
> method, I set the AppDelegate's mainWindowController and window instance 
> variables to the new window controller and to its new window, so that the 
> AppDelegate can refer to them as needed.

This is slightly different that I have an Outlet defined in the MainMenu.xib 
file which is set to LTWMainWindowController and I do use a simple init method 
inside of  LTWMainWindowController that calls initWithWindowNibName with 
@“LTWMainWindow”.

> 
> The MainWindowController implements the outlets and action methods and any 
> delegate methods for the window and all or most of its buttons and other UI 
> elements. It can refer to the menu bar and other things in the AppDelegate as 
> needed by calling NSApp.delegate. In turn, AppDelegate can refer to the 
> window, its UI elements, and the window controller as needed by using 
> AppDelegte's instance variables for them.
> 

Thanks again, I think I’ve got it now!

Cheers
Dave



_______________________________________________

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

Reply via email to