gpt4 book ai didi

macos - NSSavePanel 在优胜美地崩溃

转载 作者:行者123 更新时间:2023-12-01 02:13:25 24 4
gpt4 key购买 nike

我正在使用 NSSavePanel保存图像。

我用过 IKSaveOption它被添加到 NSSavePanel 中。
当保存面板尝试打开窗口的工作表时,它会崩溃说 -

*** Assertion failure in -[IKSaveOptionsContainer _didChangeHostsAutolayoutEngineTo:], /SourceCache/AppKit/AppKit-1343.14/Layout.subproj/NSView_Layout.m:577 - Should translate autoresizing mask into constraints if _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。新的 OS API 中是否有任何布局更改?

最佳答案

更新2:结果证明解决方案很简单。

[self.saveOptions addSaveOptionsAccessoryViewToSavePanel:savePanel];
savePanel.accessoryView.translatesAutoresizingMaskIntoConstraints = YES;

更新:以下解决方法不会更改文件名的扩展名,并且根据您保存文件的方式,可能无法满足新格式请求。

我找到了一个解决方法,并向 Apple (20595916) 提交了一个错误。解决方法不是很好,因为 super View 的大小可能不足并剪辑了图像选项的控件。
NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 400, 200)];
view.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
savePanel.accessoryView = view;

[self.saveOptions addSaveOptionsToView:view];

关于macos - NSSavePanel 在优胜美地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27374355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com