• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Preferences in a separate nib file
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Preferences in a separate nib file


  • Subject: Re: Preferences in a separate nib file
  • From: Conor Dearden <email@hidden>
  • Date: Sun, 06 Nov 2005 10:00:58 +0100

What Cameron said is correct; there does not exist a no code way. He is
actually allocating a custom class and never loads a nib. It's the same
setup Cameron mentioned but the class method to load the nib is "[NSBundle
loadNibNamed:owner:"

- (IBAction)showPreferences:(id)sender {

    if (preferencesObject == nil) {
        preferencesObject= [[MyPreferences alloc] init];
        if (![NSBundle loadNibNamed:@"PreferencesPanel.nib"
owner:preferencesObject] ) {
            NSLog(@"Load of PreferencesPanel.nib Failed");
            return;
        }
    }

    [[preferencesObject window] makeKeyAndOrderFront: self];
}

As you can see I also load a custom object but then load it as the owner of
a new nib.  If you don't mind the object who has method "showPreferences:"
(typically some kind of central controller) being the owner you can do:


- (IBAction)showPreferences:(id)sender {

    if (preferencesWindow == nil) {
        if (![NSBundle loadNibNamed:@"PreferencesPanel.nib" owner:self] ) {
            NSLog(@"Load of PreferencesPanel.nib Failed");
            return;
        }
    }
    [preferencesWindow makeKeyAndOrderFront: self];
}

Whatever class you pass as owner remember to set it as the class of the file
owner in the nib file and connect your outlets like preferenceWindow.

Conor Dearden
http://www.bruji.com/


>> In particular, the example directly connects the Preferences menu
>> item to the makeKeyAndOrderFront: action of the preference window.
>> So how would I do that if the main menu and preference panel are in
>> separate nib files? Is there a "no code" way to do this, or is the
>> price of a separate nib having to write some code to connect things
>> up?
>
> I think you need some code to hook it up to your main controller.
> For example, here is what I have in the main controller of my
> document-based app that has a preferences window in a separate nib
> that is loaded by its own preferences controller.
>
> - (IBAction)showPreferences:(id)sender
> {
>      NSLog(@"IsingController.showPreferences");
>      if (preferencesCtl == nil)
>      {
>          preferencesCtl = [[IsingPreferencesCtl alloc] init];
>      }
>
>      [[preferencesCtl window] makeKeyAndOrderFront: self];
> }


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Preferences in a separate nib file
      • From: Derrick Bass <email@hidden>
    • Re: Preferences in a separate nib file
      • From: Olivier Destrebecq <email@hidden>
  • Prev by Date: Re: Silly question. Is iTunes Cocoa application?
  • Next by Date: Looping a m4a with NSMovieView
  • Previous by thread: Re: Preferences in a separate nib file
  • Next by thread: Re: Preferences in a separate nib file
  • Index(es):
    • Date
    • Thread