如何在不使用applescript打开的情况下获取弹出菜单中的项目数? [英] How to get the number of items in a pop-up menu without opening it using applescript?
问题描述
我想编写一个脚本,以几种格式保存图像.问题是格式是根据某些条件显示的.我的意思是有时会有 5 种格式,有时会有 8 种格式.我想完全自动化这些保存内容的工作.所以我决定写一个applescript.有了 UI 浏览器,我可以使用它访问每个弹出菜单.我正在使用循环来执行保存操作.问题是我还没有结束.所以我想出了一个想法,如果我能得到弹出菜单中项目的数量,那么我就很容易执行任务了.
I want to write a script which saves the images in few formats. the thing is the formats are shown based on some condition. I means some times there will be 5 formats and sometimes 8. I want to completely automate the working of these saving things. So i decided to write an applescript. Got UI browser and using that I can access each and every pop-up menus. I'm using loops to perform save operation. The thing is I am not getting where to end. So i came up with a thought that if i can get the number of items in the pop-up menu then it will be easy for me to carry out the task.
有人可以帮我吗?
推荐答案
嗯,这是可能的,但你不能直接计算菜单项.通信是在 GUI 端进行的,而不是直接与应用程序进行的,这意味着需要先出现菜单才能进行计数.
Well this is possible but you can't count the menu items directly. Communication is at the GUI-end and not directly to the application which means that the menu needs to appear before you can count it.
tell application "System Events"
tell process "Your application"
--we need to menu to appear first
click pop up button 1 of window 1
--now the menu appeared we can count the items in it
count menu items of menu 1 of pop up button 1 of window 1
--now hide the menu again by pressing escape
key code 53
end tell
end tell
计数是检查菜单的一种方法,但另一种方法是获取其中的所有值,然后按其名称单击右侧的菜单项.一般来说,这可能不是您的最佳解决方案.
Well counting is one way to check the menu but the other way is get all the values in it and then click the right menu item by it's name. This is, maybe not in your case, in general the best solution.
set menuItemToSelect to "Title of menu item I prefer to check"
tell application "System Events"
tell process "Your Application"
tell pop up button 1 of window 1
--Only continue if the menu item isn't already selected
if value of it is not equal to menuItemToSelect then
--we need to menu to appear first
click it
--now the menu appeared we can get the items
set menuItemTitles to name of menu items of menu 1
--check if the menu item exists
if menuItemToSelect is in menuItemTitles then
--menu item exists; click on it
click menu item menuItemToSelect of menu 1
else
--the menu item to select doesn't exist; hide the menu
key code 53
end if
end if
end tell
end tell
end tell
这篇关于如何在不使用applescript打开的情况下获取弹出菜单中的项目数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!