.[NSOpenPanel directoryURL] gives error: No visible @interface for 'NSOpenPanel' declares the selector 'directoryURL:'

.[NSOpenPanel directoryURL] gives error: No visible @interface for 'NSOpenPanel' declares the selector 'directoryURL:'

我正在使用 Xcode,使用基础 SDK 和部署目标构建:OS X 10.8,尝试使用 [NSOpenPanel directoryURL]offical documentation 表示

Available in OS X v10.6 and later

但我收到错误:

ARC Semantic issue - No visible @interface for 'NSOpenPanel' declares the selector 'directoryURL:'

代码:

#import <Cocoa/Cocoa.h>
// #import <NSOpenPanel.h> // No good
@import AppKit;

void fileOpen()
{
    NSOpenPanel *openPanel = [NSOpenPanel openPanel];
    // [openPanel setDirectory:@""]; // works, but deprecated in OSX 10.6
    [openPanel directoryURL: [NSURL URLWithString:@"file:///path/"]];
    // ...
} 

那么我做错了什么?

directoryURL 是一个 属性 并且不像您最初猜测的那样采用字符串参数。这就是您在尝试解析 directoryURL:' 选择器时看到错误的原因。

不过 directoryURL 属性 确实有 getter 和 setter。

尝试使用:

[openPanel setDirectoryURL: [NSURL URLWithString:@"file:///path/"]];

或:

openPanel.directoryURL = [NSURL fileURLWithPath:@"path"];