欢迎各位兄弟 发布技术文章
这里的技术是共享的
在AppleScript中,创建一个带有多个按钮的弹窗(通常使用display dialog
命令时不能直接做到多个按钮,因为它默认只支持“OK”和“Cancel”两个按钮),但你可以通过一些变通的方法来实现类似的功能,比如使用choose from list
命令来模拟多个选项的效果。
以下是一个示例AppleScript脚本,该脚本会弹出一个对话框,显示一个列表,用户可以从中选择一个选项,然后脚本会根据用户的选择返回不同的值。
在 AppleScript 中,choose from list
命令返回的 chosenButton
变量实际上是一个列表(即使列表中只有一个元素),而不是一个简单的字符串。因此,直接比较 chosenButton
与一个字符串(如 "选项1"
)将不会按预期工作,因为类型不匹配。
要正确地处理这种情况,您需要从列表中获取第一个(也是唯一的,如果用户只选择了一个项目的话)元素。这可以通过 item 1 of
语句来实现。以下是修改后的
脚本示例:
applescript复制代码-- 定义选项列表 set buttonList to {"选项1", "选项2", "选项3", "选项4", "选项5"}
-- 使用choose from list来显示选项列表 set chosenItems to choose from list buttonList with title "请选择按钮" with prompt "请从下列选项中选择一个:" default items {"选项1"}
-- 检查用户是否做出了选择 if chosenItems is false then display dialog "您取消了选择。" buttons ["OK"] default button 1 else -- 从列表中获取第一个(也是唯一的)选中的项目 set chosenButton to item 1 of chosenItems
-- 根据用户的选择返回不同的值 if chosenButton is "选项1" then set result to "您选择了选项1" else if chosenButton is "选项2" then set result to "您选择了选项2" else if chosenButton is "选项3" then set result to "您选择了选项3" else if chosenButton is "选项4" then set result to "您选择了选项4" else if chosenButton is "选项5" then set result to "您选择了选项5" else -- 这里可以处理未知选项的情况(理论上不应该发生,除非选项列表被修改了) set result to "发生了未知错误" end if
-- 显示结果 display dialog result buttons ["OK"] default button 1 end if
在这个修改后的脚本中,chosenItems
变量现在用于存储 choose from list
命令的返回值,它是一个列表。然后,我们使用 item 1 of chosenItems
来获取用户选择的项目,并将其存储在 chosenButton
变量中。现在,chosenButton
是一个字符串,可以安全地与其他字符串进行比较。
请注意,如果 choose from list
允许用户选择多个项目(尽管在这个例子中我们没有启用该功能),那么 chosenItems
将是一个包含多个选中项目的列表,而 item 1 of chosenItems
将只获取列表中的第一个项目。如果您的应用程序需要处理多个选中项,您将需要遍历整个 chosenItems
列表。但是,在这个例子中,我们只关心用户选择的一个项目。