使用Xcode 5. *进行cocoa-applescript自动机操作。 Interface是一个简单的弹出菜单,使用以下插座填充:
tell thePopupMenu to removeAllItems()
tell thePopupMenu to addItemsWithTitles_(theList)
当在工作流程(实际是服务)中使用该操作时,我希望下次运行并显示操作对话框(我将有"选项:运行时显示"已选中),我希望弹出菜单将选择更改为最后选择的选项。现在,默认的第一项显示,即使上次运行,用户也会在弹出菜单中选择一个不同的项目。 我的想法是我需要使用Sent Action处理程序捕获弹出菜单中的更改,然后设置某种类型的默认值。我有一个工作的处理程序:
on thePopupMenuSentAction_(sender)
set popupValue to (popupSelectedValue of my parameters()) as string
-- save this selection somewhere???
end
保存这个的正确方法是什么?我是否使用用户默认值?我的绑定当前都通过参数对象/控制器绑定。如果我应该使用用户默认值,有人可以提供设置用户默认值的示例代码,然后如何使用Cocoa-Applescript获取和设置新值?
如果我可以在某处保存菜单项的名称字符串,我可以获取字符串然后更改
中弹出菜单的选择on opened {}
-- set up the action interface
end
每次都在显示操作之前调用的处理程序。
感谢您的帮助, 乔
答案 0 :(得分:0)
我的确有点不同。我假设你指的是XCode称之为“弹出按钮”(有点误导)。我根本没有使用这些参数,尽管对于大型项目来说这可能更好。看看代码:
script Insert_Picture_into_Powerpoint_Slide_Show
property parent : class "AMBundleAction"
property menuChoices : {"Insert a Beginning", "Insert at End"}
property menuSelection : missing value
if (menuSelection as string) is "missing value"
set menuSelection to 0 as integer -- sets default value
end if
end script
我将内容值绑定到文件所有者,并在模型关键路径下设置 menuChoices 。
然后,您只需将所选索引绑定到文件所有者,然后将模型密钥路径类型 menuSelection 绑定。
在初始运行时,如果用户未单击任何内容,则menuSelection将缺少值。因为我无法找到解决方法,所以我创建了一个条件来测试它并默认将它设置为第一个选择(添加动作时显示的那个)。
当用户选择其中一个菜单选项时,会在连续运行时记住该选项。