我有带有附件视图的NSSavePanel ,让用户选择一种图形格式,以便他们可以将图像 (NSImage) 保存为文件。到目前为止,我有以下内容。(我跳过了一些行以使其简短。)
- (void)exportFile {
NSString *filename;
if (formatIndex1 == 0) { // Default selection by user in Preferences
filename = @"Untitled.bmp";
}
else if (formatIndex1 == 1) {
filename = @"Untitled.gif";
}
...
[panel setAllowedFileTypes:[[NSArray alloc] initWithObjects:@"bmp",@"gif",@"jpg",@"jp2",@"png",nil]];
[panel setAllowsOtherFileTypes:NO];
[panel setExtensionHidden:NO];
[panel setCanCreateDirectories:YES];
[panel setNameFieldStringValue:filename];
[panel setAccessoryView:accessoryView1];
[formatMenu1 setAction:@selector(dropMenuChange:)]; // formatMenu1 is NSPopUpButton
[formatMenu1 setTarget:self];
[panel beginSheetModalForWindow:window completionHandler:^(NSInteger result) {
if (result == NSFileHandlingPanelOKButton) {
// getting panel url
}
}];
}
-(void)dropMenuChange:(NSPopUpButton *)sender {
NSSavePanel *savePanel = (NSSavePanel *)[sender window];
[savePanel setNameFieldStringValue:@"..."];
}
我不是 100% 确定我做对了。我想要实现的是,每当用户在附件视图的 NSPopUpButton 上选择文件格式时,我想将正确的扩展名附加到当前文件名。有没有一种神奇的方法可以做到这一点?或者我是否必须以编程方式为自己设置具有正确扩展名的当前文件名setNameFieldStringValue?
谢谢您的帮助。