我有一个应用程序,当在单独的窗口中单击或关闭复选框时,应该打开和关闭一个窗口。我可以打开它,但不能关闭它。我在 windowControllerObject 中定义了一个 NSWindow 并尝试关闭 NSWindow。相关代码为:
按钮控制器.h
@interface buttonController : NSWindowController
{
NSButton *showAnswerBox;
infoWindowController *answerWindowController;
}
- (IBAction)showAnswer:(id)sender;
@end
按钮控制器.m
- (IBAction) showAnswer:(id) sender
{
if ([sender state] == NSOnState) {
if (!answerWindowController) {
answerWindowController = [[infoWindowController alloc] init];
}
[answerWindowController showWindow:self];
}
else {
[answerWindowController hideWindow];
}
}
infoWindowController.h:
@interface infoWindowController : NSWindowController {
IBOutlet NSWindow * infoWindow;
}
- (id) init;
- (NSWindow *) window;
- (void) hideWindow;
- (void) tsSetTitle: (NSString *) displayName;
@end
在 infoWindowController.m 中:
- (NSWindow *) window
{
return infoWindow;
}
- (void) hideWindow
{
[[self window] close];
}
窗口打开,但不会关闭。我尝试了几种变体,包括 infoWindowController 上的 orderOut。我确定我错过了一些愚蠢的东西 - 它是什么?
在 IB 中,我什至可以打开窗口的唯一方法是如果选中“启动时打开”-我不应该能够以编程方式打开它们吗?