没有已知的选择器setStringValue类方法:

时间:2015-05-30 00:01:55

标签: objective-c macos browser

我目前正在Xcode 6.3.2中创建一个简单的Web浏览器。我尝试更改它,以便每当用户导航到新页面时,URL栏都会更改为新页面的地址。但是,这不能正常工作。

我的代码是:

 - (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
{
    // Only report feedback for the main frame.
    if (frame == [sender mainFrame]){
        NSString *url = [[[[frame provisionalDataSource] request] URL] absoluteString];
        [NSTextField setStringValue:url];
    }
}

我不断收到错误"没有已知的选择器setStringValue的类方法:"。我是这个东西的新手,所以我真的不知道该怎么做。

我还使用#import "WebKit/WebKit.h"导入了WebKit.h文件。不知道AppDelegate.m文件中是否有必要,因为我已经在AppDelegate.h中导入了它。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

setStringValue:是一个实例方法,而不是类方法。

这意味着您必须在NSTextField

的实例上使用它

e.g:

NSTextField *tf = [NSTextField new];
[tf setStringValue:@"some string"];

修改

如果您尝试让WebView加载新网址,请执行以下操作:

[[[sender mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL urlWithString:url]]];

请参阅WebView参考:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/index.html