2

我有一个正在使用的应用程序beginSheetForDirectory:file:modalForWindow:modalDelegate:didEndSelector:contextInfo:

我检查了 Apple 文档,该文档说它已被弃用,并改用另一种方法:

将保存面板显示为具有指定路径的工作表,并且可以选择在该路径中指定文件。(在 Mac OS X v10.6 中已弃用。改用 beginSheetModalForWindow:completionHandler:。)

我的问题是如何将此代码更改为新代码?

//  [savePanel setRequiredFileType:@"png"];
[savePanel beginSheetForDirectory:nil 
                             file:nil  
                   modalForWindow:[self window] 
                    modalDelegate:self 
                   didEndSelector:@selector(didEndSaveSheet:returnCode:conextInfo:) 
                      contextInfo:NULL];
4

1 回答 1

3

你正在寻找beginSheetModalForWindow:completionHandler:方法。

例子:

NSSavePanel *savePanel = [NSSavePanel savePanel];

[savePanel beginSheetModalForWindow:_window completionHandler:^(NSInteger result) {
    if (result == NSFileHandlingPanelOKButton) {
        NSURL *savePath = [[savePanel URLs] objectAtIndex:0];
    } else {
        [savePanel close];
    }
}];
于 2012-07-07T17:20:27.500 回答