【发布时间】:2018-07-14 18:04:53
【问题描述】:
我正在尝试从 Mac OS 应用程序中更改屏幕截图的保存位置,但这似乎不起作用。
在终端中执行以下命令可以完美运行。正如预期的那样,所有屏幕截图都保存在名为 Screenshots 的文件夹中(位于我的桌面上)。
终端
defaults write com.apple.screencapture location ~/Desktop/Screenshots
killall SystemUIServer
每当我让我的应用程序执行以下 sn-p 时,com.apple.screencapture.plist 中的位置值将按预期更改。
Objective-C
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.apple.screencapture.plist"];
[defaults setValue:@"/Users/Maarten/Desktop/Screenshots" forKey:@"location"];
[defaults synchronize];
值改变后,我用终端运行killall SystemUIServer
但不知何故,此命令似乎不起作用,因为所有屏幕截图都保存在其先前定义的(默认)位置。
【问题讨论】:
-
我自己已经想出了这个。我已经尝试了多个间隔,最多一分钟。没有任何变化。
-
defaults read com.apple.screencapture location将导致新位置。在执行killall SystemUIServer之前和之后。 -
是的,它确实存在。我注意到重新启动将接受更改,因此我假设必须有其他命令(除了
killall SystemUIServer)来处理新值。 -
不需要重新启动。有第三方实用程序可以立即进行此更改,而无需重新启动。您可以在终端中使用
defaults和killall并且它可以工作但不能使用其他方法这一事实表明不需要重新启动。这里还有其他东西,不幸的是我不确定它是什么,因为我无法在相同的条件下进行测试。
标签: objective-c xcode macos terminal nsuserdefaults