Как изменить устаревший метод beginSheetForDirectory

У меня есть приложение, которое использовало beginSheetForDirectory:file:modalForWindow:modalDelegate:didEndSelector:contextInfo:,

Я проверил документацию Apple, в которой говорилось, что она устарела, и вместо нее использовал другой метод:

Представляет панель "Сохранить" в виде листа с указанным путем и, необязательно, с указанным файлом по этому пути. (Устаревший в Mac OS X v10.6. Вместо этого используйте beginSheetModalForWindow: завершение, а потом:).

У меня вопрос как поменять этот код на новый?

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

1 ответ

Решение

Вы ищете beginSheetModalForWindow:completionHandler: метод.

Пример:

NSSavePanel *savePanel = [NSSavePanel savePanel];

[savePanel beginSheetModalForWindow:_window completionHandler:^(NSInteger result) {
    if (result == NSFileHandlingPanelOKButton) {
        NSURL *savePath = [[savePanel URLs] objectAtIndex:0];
    } else {
        [savePanel close];
    }
}];
Другие вопросы по тегам