我正在创建一个小程序,它将帮助自动化虚拟环境的初始化和 Django 服务器的启动。我想与其他人分享这个程序。
我正在寻找一种方法来通过使用打开的文件浏览器创建变量(文件夹的位置)并存储该变量,以便用户将来不必输入它。
如何在我的程序中存储新信息以备将来使用?我调查了 plist 文件的使用,但在任何地方都找不到任何文档。谢谢你的帮助!
我正在创建一个小程序,它将帮助自动化虚拟环境的初始化和 Django 服务器的启动。我想与其他人分享这个程序。
我正在寻找一种方法来通过使用打开的文件浏览器创建变量(文件夹的位置)并存储该变量,以便用户将来不必输入它。
如何在我的程序中存储新信息以备将来使用?我调查了 plist 文件的使用,但在任何地方都找不到任何文档。谢谢你的帮助!
您可以使用 Cocoa 中的 NSUserDefaults 类将简单的值持久地存储在用户的首选项中。
以下脚本在第一次运行时要求用户选择一个文件夹位置,然后将所选位置存储在用户的默认值中。当脚本再次运行时,它会返回存储的位置而不提示用户。(根据您的脚本更改suiteName
和locationKey
值。)
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
我建议使用上面的 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 进行通信。