【发布时间】:2010-05-29 21:30:18
【问题描述】:
我在 Cocoa 中创建新窗口时遇到问题。 假设地说,假设我有“WindowA”并且有一个名为“myButton”的按钮。 当您单击“myButton”时,它会在以下类文件中运行此代码:
-(void)openFile2:(id)sender
{
myNextWindow = [[TestWindowController alloc] initWithWindowNibName:@"MainMenu"];
NSString *testString = @"foo";
[myNextWindow showWindow:self];
[myNextWindow setButtonText:testString];
}
简而言之,代码会生成一个重复的“WindowA”并显示它。如您所见,这段代码还运行了一个名为“setButtonText”的方法,即:
- (void)setButtonText:(NSString *)passedText
{
[myButton setTitle:passedText];
}
问题是,当我在本地调用此方法时,在原始窗口中 - 按钮文本发生更改(例如,[self setButtonText:testString])它可以工作。但是,它在新创建的窗口中不起作用(例如,[myNextWindow setButtonText:testString];)
当我逐步调试新创建的窗口时,它给出的“myButton”值是 0x0。我是否必须手动将控制器/代表分配到新窗口?我认为代码中的“myButton”与新创建的窗口中的“myButton”没有关联。
我该如何解决这个问题?
【问题讨论】:
标签: objective-c windows cocoa xcode