0
今、私はObjCのいくつかの行を設定してデフォルトのプリンタを設定し、私のアプリケーションではその新しいプリンタの名前でラベルを更新する必要がありますワーキング。私のコントローラで実行時にデフォルトのプリンタ名を更新する
、私は次のようしている:
この小さなメソッドを呼び出します[self updatePrinter];
:
- (void)updatePrinter {
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
self.printerName.stringValue = printInfo.printer.name;
NSLog(@"Printer: %@", printInfo.printer.name);
}
は、それが(viewDidLoad
に)私の方法を打つ、それはラベルprinterName
を適切に移入されます。
私が設定されている新しいプリンタのデフォルトをポーリングするタイマーを追加してみました:
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(updatePrinter)
userInfo:nil
repeats:YES];
これは正しく動作しますが、私は、システム環境設定を開き、デフォルトのプリンタを変更した場合、それはの名前を印刷し続け古いデフォルト。アプリを再起動すると、動作が異なります。
新しいデフォルトを実行時にアプリに反映させるにはどうすればよいですか?
おかげで新しいオブジェクトを作成します。私は、PM *関数を含む複雑な解決策を思いついたので、initWithDictionary:すべての設定が必要だと思った。これは私にとって非常に簡単かつ効率的に機能します。 – drewpotential