macos - NSOpenPanel - 一切都已弃用?

标签 macos cocoa nsopenpanel

我一直在尝试显示一个窗口,要求用户选择一个文件,最终我做到了。问题是,Xcode 提示我正在使用的方法已被弃用。我查看了class reference ,但从 Mac OS 10.6 开始,“运行面板”部分下的所有内容均已被弃用。我现在应该使用不同的类吗?

最佳答案

在 10.6 中,此类发生了一些变化。好处之一是现在有了基于 block 的 API。

这是有关如何使用它的代码片段:

NSOpenPanel *panel = [[NSOpenPanel openPanel] retain];

// Configure your panel the way you want it
[panel setCanChooseFiles:YES];
[panel setCanChooseDirectories:NO];
[panel setAllowsMultipleSelection:YES];
[panel setAllowedFileTypes:[NSArray arrayWithObject:@"txt"]];

[panel beginWithCompletionHandler:^(NSInteger result){
    if (result == NSFileHandlingPanelOKButton) {

        for (NSURL *fileURL in [panel URLs]) {
            // Do what you want with fileURL
            // ...
        }
    }

    [panel release];
}];

关于macos - NSOpenPanel - 一切都已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7693896/

相关文章:

cocoa - 将窗口作为参数传递给 applescript 中的函数

objective-c - NSOpenPanel 第一次访问文件夹后不显示文件

java.awt.Frame.setBackground() 在 OS X 中不工作

swift - 如何为所有正在运行的应用程序添加监听器

mysql - gem 安装 mysql ... 错误

objective-c - .[NSOpenPanel目录URL]给出错误: No visible @interface for 'NSOpenPanel' declares the selector 'directoryURL:'

objective-c - 仅允许 NSOpenPanel 中的文件夹和文件

objective-c - CATransition push without fade

objective-c - 如何制作一个类似 iTunes 的(播放列表、库)左侧(可折叠)导航栏?

cocoa - 意想不到的优秀背景CATransaction