2012-02-27 4 views
4

Я новый программист Mac, и мне нужна помощь по использованию NSProgressIndicator. Я уже искал пример кода, но не смог найти ничего, что помогло.Как использовать индикаторы прогресса какао?

То, что я хочу сделать это:

-(IBAction)startProgressBar:(id)sender; { 

    //I want to make the bar update itself by the value of 1 until it is at the value of 100 
    //Example: add 1 to bar every second until it is full 

} 

ответ

8

performSelector:withObject:afterDelay Я думаю, что поможет вам здесь.

Напишите метод, который увеличит ваш индикатор выполнения. В конце этого метода вызовите performSelector:withObject:afterDelay по тому же методу с задержкой в ​​1 секунду, пока полоска не будет заполнена.

Вам, вероятно, не нужно будет передавать объект этому методу, поэтому вы можете просто использовать nil.

EDIT

В вашем случае я бы рекомендовал что-то вроде этого:

- (IBAction)startProgressBar:(id)sender 
{ 
    // Initialize the progress bar to go from 0 to 100 
    [progress setMinValue:0.0]; 
    [progress setMaxValue:100.0]; 
    [progress setDoubleValue:0.0]; 

    // Start the auto-increment calls 
    [self incrementProgressBar]; 
} 

- (void)incrementProgressBar 
{ 
    // Increment the progress bar value by 1 
    [progress incrementBy:1.0]; 

    // If the progress bar hasn't reached 100 yet, then wait a second and call again 
    if([progress doubleValue] < 100.0) 
     [self performSelector:@selector(incrementProgressBar) withObject:nil afterDelay:1]; 
} 
+0

Я уже знаю, что строка кода, но я не знаю, как это LOOP, пожалуйста, дайте мне более подробно:) – CocoaCoder

+1

Представьте, что вы пишете метод с этой строкой кода в конце. После запуска метода он снова запустится (после задержки). И опять. Это своего рода рекурсивный метод. – Aaron

+0

Да, но я хочу сделать его петлей до тех пор, пока бар не будет на 100% заполнен. Затем я хочу остановить цикл, пожалуйста, помогите: D – CocoaCoder

Смежные вопросы