I am trying to understand the right way of dealing with a "settings" window in 
my application. I have a "Camera" object that wraps a Firewire video camera. I 
would like to bring up an NSPanel that enables various settings of the camera 
to be modified. I do not need to override any particular behaviours of 
NSWindowController, and it seems to me that logically my Camera object should 
not need to inherit from NSWindowController (the window business is a bit of a 
distraction from the main purpose of the camera class, which is handling 
received frames - and in future I may want more than one such camera-related 
window).

What I thought I could do when I want to bring the settings window up is as 
follows (from within my Camera class):
if (settingsWindowController == NULL)
        settingsWindowController = [[NSWindowController alloc] 
initWithWindowNibName:(NSString *)@"Camera Settings" owner:self];
[settingsWindowController showWindow:self];
(where settingsWindowController is an instance variable of type 
NSWindowController). In the nib file I have set the File's Owner proxy to type 
Camera, and the bindings I have set up for the window all work correctly. 
However [settingsWindowController window] returns nil, and this causes various 
problems. Clearly I am doing something wrong.

Alternatively I can set the File's Owner to type NSWindowController (and not 
specify an owner in my call to initWithWindowNibName). If I do this then the 
window controller is correctly linked to the window (I link up the appropriate 
outlet in IB), but the bindings don't work.

I can't work out whether there is a way I can get my (instance variable-based) 
window controller to work AND bind to the Camera object. I feel this would be 
the tidiest way of doing things (it doesn't make sense to me for Camera to 
inherit from NSWindowController). Is there something extra I need to do to make 
this work, or am I just approaching all this in the wrong way?

I have tried adding an NSWindowController object in the nib (with File's Owner 
still Camera). I can wire that up to the window, but I suspect that's not doing 
anything because I am allocating my own NSWindowController object in the code I 
listed earlier. I wonder if adding the NSWindowController object is the way 
forwards - but if so, how to I go about loading the controller from the nib as 
well as the window itself? I suspect from various other confused postings in 
the archives that initWindowWindowNibName:owner may not be the right thing for 
me to use here.

Hopefully this makes sense - thanks for any suggestions...
Jonny_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to