У меня есть приложение, в котором окно должно быть открыто и закрыто при нажатии или выключении флажка в отдельном окне. Я могу открыть его, но не могу его закрыть. Я определяю NSWindow в windowControllerObject и пытаюсь закрыть NSWindow. Соответствующий код:Не удается закрыть окно - почему?
buttonController.h
@interface buttonController : NSWindowController
{
NSButton *showAnswerBox;
infoWindowController *answerWindowController;
}
- (IBAction)showAnswer:(id)sender;
@end
buttonController.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];
}
Окно открывается, но оно не будет закрываться. Я попробовал несколько вариантов, в том числе orderOut на infoWindowController. Я уверен, что мне не хватает чего-то глупого - что это?
В IB, единственный способ, с помощью которого я могу открыть окна, - это если «Открыть при запуске» проверено - не должен ли я открывать их программно без этого?
Выполнена любая отладка? Методы называются? Переменные действительны? – Wain
Вы намеренно переопределяете свойство окна своей собственной реализацией? Что происходит для [infoWindow close] в вашем методе hideWindow –
Изменили свой код. Пожалуйста, проверьте –