.[NSOpenPanel directoryURL] выдает ошибку: Нет видимого @interface для 'NSOpenPanel' объявляет селектор 'directoryURL:'

Я использую XCode, сборка с базовым SDK и целью развертывания: OS X 10.8, пытаясь использовать [NSOpenPanel directoryURL] что официальная документация гласит

Доступный в OS X v10.6 и позже

Но я получаю ошибку:

Семантическая проблема ARC - нет видимого @interface для 'NSOpenPanel', объявляет селектор '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/"]];
    // ...
} 

Так что я здесь не так делаю?

1 ответ

Решение

directoryURL является свойством и не принимает строковый аргумент, как вы изначально предполагали. Вот почему вы видели ошибку при попытке решить directoryURL:' селектор.

directoryURL у свойства есть геттер и сеттер.

Попробуйте использовать:

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

или же:

openPanel.directoryURL = [NSURL fileURLWithPath:@"path"];
Другие вопросы по тегам