cocoa-applescript:确定进度指标

时间:2015-08-14 12:55:08

标签: xcode cocoa progress-bar applescript-objc

我正在使用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来完成它。总结一下,如何制作确定进度条,如何设置其总步数以及如何更新其当前步骤?

修改

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

1 个答案:

答案 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_

希望这有帮助!