COCOA: Programatically creating new windows and accessing window objects

Posted by Jeffrey Kern on Stack Overflow See other posts from Stack Overflow or by Jeffrey Kern
Published on 2010-05-29T21:30:18Z Indexed on 2010/05/29 21:32 UTC
Read the original article Hit count: 197

Filed under:
|
|
|

I'm having an issue with creating new windows in Cocoa. Hypothetically speaking, lets say I have "WindowA" and has a button called "myButton". When you click on "myButton", it runs this code in the following class file:

 -(void)openFile2:(id)sender
{
    myNextWindow = [[TestWindowController alloc] initWithWindowNibName:@"MainMenu"];
    NSString *testString = @"foo";

    [myNextWindow showWindow:self];
    [myNextWindow setButtonText:testString];
}

The code in a nutshell makes a duplicate "WindowA" and shows it. As you can see, this code also runs a method called 'setButtonText', which is this:

- (void)setButtonText:(NSString *)passedText
{
    [myButton setTitle:passedText];
}

The problem is that when I call this method locally, in the original window - the button text changes (e.g., [self setButtonText:testString]) it works. However, it does not work in the newly created window (e.g., [myNextWindow setButtonText:testString];)

When I debug the newly created window, step by step, the 'myButton' value it gives is 0x0. Do I have to manually assign controllers/delegates to the new window? I think the 'myButton' in the code isn't associated to the 'myButton' in the newly created window.

How would I fix this problem?

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about Windows