我正在使用Cocoa-Applescript创建一个应用程序,它通过ping x.y.z. [1-255]来识别启动并运行的本地IP地址,并将运行的IP附加到文本文件中。我已经有了一个用于选择x,y和z的GUI,并且已经使脚本ping每个地址:
repeat 255 times
try
do shell script "ping -o -t 1 -c 1 " & ipstamp & num4
do shell script "echo " & ipstamp & num4 & " >>/Users/DJ/Desktop/GoodIPs.txt"
end try
set num4 to (num4 + 1)
end repeat
ipstamp 是x.y.z而 num4 是[1-255]。但是现在我想要一个进度指示器来显示它在这个过程中的位置。我知道如何获得一个简单的启动和停止的不确定指标:
ProgressBar's startAnimation_(ProgressBar)
## code to ping IP address
ProgressBar's stopAnimation_(ProgressBar)
但这只是不确定的,我找不到任何关于在Cocoa-Applescript中设置确定的信息,设置它们的最大步数并设置它们的当前步骤 - 就像在常规的Applescript中一样:
set progress total steps to x
set progress completed steps to y
除了它在GUI中,因此我需要使用NSProgressIndicators来完成它。总结一下,如何制作确定进度条,如何设置其总步数以及如何更新其当前步骤?
可以在菜单构建器的属性检查器中将其更改为确定,最大,最小和当前步骤也可以。但是,我确实需要能够在脚本中更改最大和最新步骤,因此仍然适用。
答案 0 :(得分:0)
嗯,你可以确定indercator的进度,但问题是你必须重复告诉它使用
来达到一定的长度setDoubleValue_()
消息,但无论如何这里是一个简单的脚本告诉它去达到100
property MyProgressBar : missing value -- Progress Bar IB Outlet
on applicationWillFinishLaunching_(aNotification)
set c to 0
repeat 100 times
set c to c + 1
delay 0.2
tell MyProgressBar to setDoubleValue_(c) -- Tells Progress bar the % to go to
if c > 99 then
exit repeat -- If current repeat is 100 or more then cancels adding more
end if
end repeat
end applicationWillFinishLaunching_
希望这有帮助!