gpt4 book ai didi

macos - 在运行时更新默认打印机名称

转载 作者:行者123 更新时间:2023-12-03 17:48:17 26 4
gpt4 key购买 nike

现在,我有几行 ObjC 来轮询正在设置的默认打印机,并且在我的应用程序中它应该使用该新打印机的名称更新标签,但到目前为止它还不起作用。

在我的 Controller 中,我有以下内容:

[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];

它运行正确,但如果我打开系统首选项并更改默认打印机,它会继续打印旧默认值的名称。仅当我重新启动应用程序时,它的行为才会有所不同。

如何在运行时将新的默认值反射(reflect)在我的应用程序中?

最佳答案

不要再次使用相同的 NSPrintInfo 对象,而是创建一个新对象

[[NSPrintInfo alloc] initWithDictionary:@{}];

关于macos - 在运行时更新默认打印机名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41232345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com