に開いて設定を変更... 私はgetInstance
というメソッドを持つクラス「MyPreferencesWindowController」を持っています。このメソッドは、環境設定ウィンドウを取得するときに呼び出されます。このソリューションはシングルトン技術を利用しています。
Documentクラスで今すぐ
/**
Method in my MyPreferencesWindowController.m file
with a corresponding method in the .h file.
*/
+(id) getInstance {
static PreferencesWindowController *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}
、次の操作を行い、設定ウィンドウを表示したい:
-(IBAction) showPreferences:(id)sender {
if (preferencesWc == nil)
preferencesWc = [MyPreferencesWindowController getInstance];
[ preferencesWc showWindow:self ];
}
これは、環境設定ウィンドウが一度だけ作成されていることを確認します。 getInstance
を呼び出すと、同じウィンドウのインスタンスが返されます。
ありがとうございます!本当に助けてくれる! –
私は助けが必要です!私はこのコメントの上にコードを使用すると、私のアプリでは、1つだけの環境設定ウィンドウを開くことがあります。そのとおり!!!しかし!私が彼を閉じて "command"を押すと、もう一度これは効果がありません。どのようにそれを修正する? –
そのウィンドウ用のインタフェースビルダーでは、「閉じたときに解放する」チェックボックスがオフになっていることを確認してください。 –