Загрузка веб-просмотра в Xcode - PullRequest
2 голосов
/ 21 января 2010

Я загружаю удаленный URL-адрес в веб-просмотре и хочу показать спиннер во время загрузки контента. У меня есть следующий код, но спиннер не исчезает, когда содержимое заканчивается загрузка. Как сделать так, чтобы спиннер исчезал после загрузки контента?

NSURL *noteURL = [NSURL URLWithString:@"http://google.com/"];
NSString *defaultNote = @"Hello there";

NSRect frame = [[noteView superview] frame];
noteSpinner = [[[NSProgressIndicator alloc] initWithFrame:NSMakeRect(NSMidX(frame)-16, NSMidY(frame)-16, 32, 32)] autorelease];
[noteSpinner setStyle:NSProgressIndicatorSpinningStyle];
[noteSpinner startAnimation:self];
//webViewFinishedLoading = NO;
[[noteView superview] addSubview:noteSpinner];

if (noteURL)
{
    if ([noteURL isFileURL])
    {
        [[noteView mainFrame] loadHTMLString:@"Release notes with file:// URLs are not supported for security reasons—Javascript would be able to read files on your file system." baseURL:nil];
    }
    else
    {
        [[noteView mainFrame] loadRequest:[NSURLRequest requestWithURL:noteURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30]];
    }
}
else
{
    [[noteView mainFrame] loadHTMLString:defaultNote baseURL:nil];
}

1 Ответ

2 голосов
/ 21 января 2010

Будьте делегатом загрузки кадра , и остановите анимацию индикатора прогресса , когда основной кадр завершит загрузку.

Остановите анимацию только тогда, когда кадр, для которого вы получили сообщение о выполненной загрузке, является основным кадром веб-представления. Вы получите одно из этих сообщений для каждого фрейма в веб-представлении, включая вложенные фреймы и фреймы. Вы не хотите останавливать анимацию преждевременно.

...