AppleScript:具有多行按钮的对话框

AppleScript:具有多行按钮的对话框,applescript,Applescript,像这样的代码display dialog“choose”按钮{“yes”,“no”}创建了一个包含两个按钮的对话框,按预期在一行中显示 我试图找出是否有可能创建多行按钮 例如,第一行可以有按钮{“红色”、“黄色”、“蓝色”},第二行可以是{“大”、“小”},第三行可以是{“取消”} 有可能吗?因为AppleScript被设计成一个自动化系统,而不是一种成熟的编程语言,所以它总是将GUI限制在简单的“警报”式面板上。其想法是,脚本应该尽可能少地打扰用户,显示询问单个信息的对话框,然后让开,这样脚本

像这样的代码
display dialog“choose”按钮{“yes”,“no”}
创建了一个包含两个按钮的对话框,按预期在一行中显示

我试图找出是否有可能创建多行按钮

例如,第一行可以有按钮
{“红色”、“黄色”、“蓝色”}
,第二行可以是
{“大”、“小”}
,第三行可以是
{“取消”}


有可能吗?

因为AppleScript被设计成一个自动化系统,而不是一种成熟的编程语言,所以它总是将GUI限制在简单的“警报”式面板上。其想法是,脚本应该尽可能少地打扰用户,显示询问单个信息的对话框,然后让开,这样脚本可以或多或少地在不可见的情况下工作。其本机警报最多有三个按钮(在“是”、“否”、“取消”型号上)。处理三项以上选项的唯一本机方法是使用
choose from list
命令,例如:

set meal to choose from list {"Hamburger", "Pizza", "Spaghetti", "Cucumber Salad", "Pork Chops", "Green Eggs and Ham"} with title "Meal Time" with prompt "What do you want to eat?"
这会产生如下警报:


虽然可以使用AppleScriptObjC创建一个包含多行按钮的多按钮警报,但这是一项非常重要的任务:付出大量的努力却得不到什么回报。基本上,必须使用
NSAlert
创建一个新警报,然后创建并附加一个附件视图,在该视图中添加并定位了一行
nsbutton
。您还必须添加一些逻辑,以便您创建的附件视图按钮充当“警报”按钮(这意味着它们在单击时会解除警报)。堆栈溢出实际上并不适用于编码服务——尽管人们偶尔会打破这一规则——但如果您想自己完成大部分编码工作,我们很乐意帮助您解决困难。

您可能想看看。它是一个脚本添加项,可在脚本编辑器中使用:

Dialog Toolkit和Dialog Toolkit Plus是基于ASObjC的脚本库,用于显示增强的对话框。向对话框添加多个文本输入字段、复选框、弹出菜单、单选按钮、路径控件、额外按钮和规则。Dialog Toolkit v2.0.3是一个兼容的更新,它修复了macOS High Sierra(10.13)的问题,而Dialog Toolkit Plus是一个增强版,它提供了更大的灵活性,但需要macOS 10.10或更高版本。您可以下载这些库和文档。(直接下载链接

下面是使用脚本编辑器.app中的对话框工具包脚本库创建的示例对话框的一些屏幕截图


普通的AppleScript不能做这样的事情,但是AppleScriptObjC提供了对Cocoa框架的访问,所以你可以创建一个你想要的丑陋的对话框/窗口。@red\u-meane:Uglier,甚至…@red\u-meane lolzthanks非常详细的解释。“从列表中选择”可能适合我的需要。多行按钮警报似乎是一个相当大的挑战,不值得。