0

我正在创建一个小程序,它将帮助自动化虚拟环境的初始化和 Django 服务器的启动。我想与其他人分享这个程序。

我正在寻找一种方法来通过使用打开的文件浏览器创建变量(文件夹的位置)并存储该变量,以便用户将来不必输入它。

如何在我的程序中存储新信息以备将来使用?我调查了 plist 文件的使用,但在任何地方都找不到任何文档。谢谢你的帮助!

4

2 回答 2

1

您可以使用 Cocoa 中的 NSUserDefaults 类将简单的值持久地存储在用户的首选项中。

以下脚本在第一次运行时要求用户选择一个文件夹位置,然后将所选位置存储在用户的默认值中。当脚本再次运行时,它会返回存储的位置而不提示用户。(根据您的脚本更改suiteNamelocationKey值。)

var currentApp = Application.currentApplication()
currentApp.includeStandardAdditions = true

var suiteName = "your.suite.name";
var locationKey = "your.prefs.key";

var $ud = $.NSUserDefaults.alloc.initWithSuiteName(suiteName);
var $location = $ud.stringForKey(locationKey);
var locationPath = $location.isNil() ? currentApp.chooseFolder() : Path($location.js);
$ud.setObjectForKey($(locationPath.toString()), locationKey);

locationPath

请注意,您还可以使用defaults命令行工具与用户的偏好进行交互,例如:

defaults read your.suite.name your.prefs.key
defaults delete your.suite.name your.prefs.key
于 2016-03-18T04:18:46.450 回答
0

我建议使用上面的 plist,但我刚刚遇到了这个很棒的工具: JSON Helper

这是一个支持脚本的应用程序。这些示例显示在 AppleScript 中,但应该很容易转换为 JXA。

JSON Helper 是一个代理(或可编写脚本的后台应用程序),它允许您直接从 AppleScript 使用 JSON(JavaScript 对象表示法)做有用的事情。JSON Helper 没有接口,在后台运行,等待 AppleScripts [或 JXA] 要求它做某事,就像 Apple 自己的 System Events 一样。

JSON Helper 包含许多命令,可帮助您将 JSON 解析为常规 AppleScript 列表和记录,并将 AppleScript 列表和记录转换回有效的 JSON。此外,JSON Helper 包含一些方便的命令,让您可以轻松地与基于 Web 的 API 进行通信。

于 2016-03-08T23:07:14.650 回答