Я использую NSSavePanel для сохранить изображение.
Я использовал IKSaveOption, который добавляется в NSSavePanel. Когда панель сохранения пытается открыть лист для окна, она вылетает, говоря:
*** Ошибка утверждения в -[IKSaveOptionsContainer _didChangeHostsAutolayoutEngineTo:], /SourceCache/AppKit/AppKit-1343.14/Layout.subproj/NSView_Layout.m:577 — следует преобразовать маску автоматического изменения размера в ограничения, если _didChangeHostsAutolayoutEngineTo:YES.
Я следую этому коду:
NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setDirectoryURL:[NSURL URLWithString:NSHomeDirectory()]];
[savePanel setDelegate:self];
[savePanel setPrompt:NSLocalizedString(@"save",nil)];
[savePanel setAllowedFileTypes:[NSArray arrayWithObjects:@"png",@"jpeg",nil]];
IKSaveOptions * opt = [[IKSaveOptions alloc] initWithImageProperties:nil
imageUTType:(NSString *)kUTTypePNG];
[opt addSaveOptionsAccessoryViewToSavePanel:savePanel];
[savePanel setExtensionHidden:NO];
[savePanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result){.....
}
Этот код работает в Maverick, но не в Yosemite. Есть ли какие-либо изменения макета в новом API ОС?