Je crée une application à partir d'un tutoriel dans un livre, mais j'ai remarqué un problème, lorsque la fenêtre de préférences que j'ai créée est ouverte puis fermée, elle ne s'ouvre plus, comment puis-je résoudre ce problème?Pourquoi la fenêtre de l'application ne s'ouvre qu'une seule fois et ne s'ouvre pas à nouveau?
Merci.
EDIT: J'ai vu un autre article à ce sujet mais je n'ai toujours pas répondu, alors je me demandais si vous pouviez répondre à cette question pour moi.
EDIT: Je parle d'un panneau (utilisé un panneau de préférences), il est ouvert via un élément de menu, et est fermé avec la croix dans le coin de la fenêtre. Le code que j'ai utilisé pour le créer provenait du livre, Cocoa Programming pour Mac OS X, le panneau qui est utilisé comme panneau de préférence se trouve dans un fichier nib séparé.
EDIT: Voici le code, c'est compliqué car le tutoriel vous a fait créer 4 fichiers.
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 (pas important)
#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
Vous voudrez peut-être ajouter un peu de contexte à cette question. Quand ouvre-t-il? Comment le fermez-vous? Quelle méthode appelez-vous pour essayer de l'ouvrir? – rjstelling
Certains codes peuvent aussi aider :) –
Êtes-vous délibérément vague? "application vraiment basique"? "la fenêtre est ouverte puis fermée, elle ne s'ouvrira plus"? "vu un autre post à ce sujet"? Il y a tellement de scénarios possibles auxquels vous pourriez vous référer, c'est ridicule. – Evan