cocoa-applescript:确定进度指示器

cocoa-applescript: Determinate progress indicator

我正在使用 Cocoa-Applescript 创建一个应用程序,它通过 ping x.y.z.[1-255] 并附加 运行 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 来完成它。那么总结一下,如何制作一个determinate进度条,如何设置它的总步数,如何更新它的当前步数?

编辑

它可以更改为在菜单构建器的属性检查器中确定,最大、最小和当前步数也可以。但是我确实需要能够从脚本中更改最大步数和当前步数,因此这些仍然适用。

好吧,您可以制作一个确定进度指示器,但问题是您必须使用

重复告诉它达到一定长度
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_

希望对您有所帮助!

就这样:

set progress total steps to -1
-- do something
set progress total steps to 0

请记住,可视化效果取决于脚本的执行方式。