Я создаю приложение из учебника в книге, но я заметил проблему: когда окно настроек, которое я создал, открывается и закрывается, оно не открывается снова, как я могу это исправить?
Спасибо.
РЕДАКТИРОВАТЬ: Я видел еще один пост об этом, но до сих пор не получил ответа, поэтому мне было интересно, если вы могли бы ответить на этот вопрос для меня.
РЕДАКТИРОВАТЬ: я имею в виду панель (используется панель настроек), она открывается через пункт меню и закрывается крестиком в углу окна. Код, который я использовал для его создания, взят из книги «Программирование какао для Mac OS X». Панель, которая используется в качестве панели настроек, находится в отдельном файле пера.
РЕДАКТИРОВАТЬ: Вот код, это сложно, так как учебник заставил вас создать 4 файла.
1) Preferences_Delegate.h
#import <Cocoa/Cocoa.h>
@class PreferenceController;
@interface Prefernces_Delegate : NSObject {
PreferenceController *preferenceController;
}
- (IBAction)showPreferencePanel:(id)sender;
@end
2) Preferences_Delegate.m
#import "Prefernces_Delegate.h"
#import "PreferenceController.h"
@implementation Prefernces_Delegate
- (IBAction)showPreferencePanel:(id)sender
{
// Is preferenceController nil?
if (!preferenceController) {
preferenceController = [[PreferenceController alloc] init];
}
NSLog(@"showing %@", preferenceController);
[preferenceController showWindow:self];
}
@end
3) PreferencesController.h (не важно)
#import <Cocoa/Cocoa.h>
@interface PreferenceController : NSWindowController {
IBOutlet NSButton *checkbox;
}
- (IBAction)changeNewEmptyDoc:(id)sender;
@end
4) PreferencesController.m
#import "PreferenceController.h"
@implementation PreferenceController
- (id)init
{
if (![super initWithWindowNibName:@"Preferences"])
return nil;
return self;
}
- (void)windowDidLoad
{
NSLog(@"Nib file is loaded");
}
- (IBAction)changeNewEmptyDoc: (id)sender
{
int state = [checkbox state];
NSLog(@"Checkbox changed %d", state);
}
@end