我正在创建一个小程序,它将帮助自动化虚拟环境的初始化和Django服务器的启动。我想与其他人分享这个计划。
我正在寻找一种方法来创建一个变量(文件夹的位置),通过使用一个打开的文件浏览器并存储该变量,以便用户以后不必输入它。
如何在程序中存储新信息以备将来使用?我调查了plist文件的使用,但无法在任何地方找到任何文档。谢谢你的帮助!
答案 0 :(得分:0)
我建议使用上面的plist,但我只是遇到了这个伟大的工具: JSON Helper
这是一款支持脚本编写的应用。示例以AppleScript显示,但应轻松转换为JXA。
JSON Helper是一个代理(或可编写脚本的后台应用程序) 允许您使用JSON(JavaScript Object Notation)执行有用的操作 直接来自AppleScript。 JSON Helper没有接口,可以运行 等待AppleScripts [或JXA]要求它做某事的背景, 就像Apple自己的系统事件一样。
JSON Helper包含一个 帮助您将JSON解析为常规AppleScript的命令数 列表和记录,并将AppleScript列表和记录转换回来 有效的JSON。此外,JSON Helper包含一些便利命令 允许您轻松与基于Web的API进行通信。
答案 1 :(得分:0)
您可以使用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