Passwords 使用AppleScript创建用户名和密码输入框

Passwords 使用AppleScript创建用户名和密码输入框,passwords,applescript,inputbox,Passwords,Applescript,Inputbox,我想创建一个与AppleScript中的输入对话框完全相同的对话框: 除了锁的左上角没有图片 此外,我需要能够保存两个输入 我知道我可以使用告诉应用程序“系统事件”来显示对话框“blah blah”default answer“end tell,但我找不到一种方法来拥有多个带标签的字段。从OSX 10.10开始,AppleScript就不提供此功能 要查看支持哪些GUI操作,请检查标准增补词典的用户交互套件(StandardAdditions.def,可通过文件>打开词典…>StandardAd

我想创建一个与AppleScript中的输入对话框完全相同的对话框:

除了锁的左上角没有图片

此外,我需要能够保存两个输入


我知道我可以使用
告诉应用程序“系统事件”来显示对话框“blah blah”default answer“end tell
,但我找不到一种方法来拥有多个带标签的字段。

从OSX 10.10开始,AppleScript就不提供此功能

要查看支持哪些GUI操作,请检查标准增补词典的
用户交互
套件(
StandardAdditions.def
,可通过
文件>打开词典…>StandardAdditions.osax
脚本编辑器.app
访问)

最接近的近似值是单个输入字段对话框——仅提示输入密码——如下所示(您已经在问题中指出了一个限制,但只是为了说明如何提示输入密码以及如何使用自定义按钮):

显示对话框——
“安装程序是…”默认答案
“”按钮{“取消”、“安装软件”}
默认按钮2
含蓄地回答
要获得所需,您需要一个第三方库,如

以下是如何在Pashua中定义请求的对话框并处理返回值:

#使用类似于属性文件的文本定义定义对话框。
将dlgDef设置为“
#窗口标题(如果没有显式设置(即使为空),也将是“Pashua”)
*.标题=
#添加提示(静态文本)。
st.type=文本
st.text=安装程序正在尝试安装新软件。请键入密码以允许此操作。
#添加用户名字段。
tfn.type=textfield
tfn.label=名称:
#添加密码字段。
tfp.type=密码
tfp.label=密码:
#添加按钮。
cb.type=取消按钮
db.type=defaultbutton
db.label=安装软件
"
#显示对话框。
#返回值是一条记录,其键是对话框中的元素名称
#定义(例如,usernam文本字段的“tfn”)及其
#值是输入的值(用于输入字段)或
#是否单击了给定按钮(“1”或“0”)
将结果设置为showDialog(dlgDef,“”)
#处理返回的值。
如果结果的cb为“1”,则
显示“用户已取消对话框”警报
其他的
显示警报“结果的名称=[”&tfn&“];结果的密码=[”&tfp&“]”
如果结束
该对话框将如下所示:


创建Pashua的概述

注:这是一个简化的概述;有关完整说明,请参阅下载光盘映像中的
Read me.html
Documentation.html

  • 从下载并安装光盘映像
  • Pashua.app
    放在
    /Applications
    ~/Applications
    中,或者在紧急情况下,放在与调用脚本相同的文件夹中。
    • Pashua.app
      是呈现对话框的应用程序(当对话框打开时,菜单栏显示
      Pashua
  • 将绑定代码(2个短处理程序,
    showDialog
    getPashuaPath
    )从
    Examples/AppleScript/Pashua.scpt
    复制到脚本中。
    • 注意:由于撰写本文时出现了一个错误,您必须对handler
      getPashuaPath
      :将行
      return(以文本形式从系统域到应用程序文件夹的路径)和“Pashua.app”替换为
      return(以文本形式从系统域到应用程序文件夹的路径)和“Pashua.app:
    • 或者,直接从GitHub repo获取最新绑定代码:

顺便提一下:GUI命令是标准添加库的一部分,而不是系统事件-无需
告诉应用程序“系统事件”