Прямо сейчас у меня есть несколько строк 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