欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

applescript 弹窗上有五个按钮,点击不同的按钮,获取到不同的值示例

在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 列表。但是,在这个例子中,我们只关心用户选择的一个项目。


普通分类: