On May 15, 2013, at 08:31 , Scott Ribe <scott_r...@elevated-dev.com> wrote:
> I guess about the only thing I can do here in order to get the file named in > a usable manner […] is to use a delegate, implement panel:validateURL:error:, > and force the user to type ".pdf". I don't believe this. If true, it would suggest that sandboxed Save panels are so broken that no one could save anything without typing the correct extension. In fact, I'm not seeing the behavior you describe. In an existing sandboxed app of mine, there's an Export function that does the right thing. The code is like this: > NSSavePanel* savePanel = [NSSavePanel savePanel]; > > savePanel.title = … > savePanel.prompt = … > savePanel.nameFieldLabel = … > savePanel.canCreateDirectories = YES; > savePanel.canSelectHiddenExtension = YES; > savePanel.allowedFileTypes = [NSArray arrayWithObject: @"abc"]; > > NSString* exportDirectory = … > if (exportDirectory) > savePanel.directoryURL = [NSURL fileURLWithPath: > exportDirectory]; > > NSString* exportFileName = [[self.document displayName] > stringByDeletingPathExtension]; > exportFileName = [exportFileName stringByAppendingString: @" Export"]; > exportFileName = [exportFileName stringByAppendingPathExtension: > @"abc"]; // <-- this > savePanel.nameFieldStringValue = exportFileName; > > [savePanel beginSheetModalForWindow: [self.document windowForSheet] > completionHandler: ^(NSInteger result) > { > … savePanel.URL … > }]; (The line labeled "<-- this" is, IIRC, the change I referred to earlier. Originally, there was no need to supply the extension explicitly there, but somewhere around 10.7, it became necessary.) Because of "canSelectHiddenExtension", my Save dialog has a "Hide Extension" checkbox. If it's unchecked, and I retype the file name text box without an extension, the checkbox turns itself on automatically. If I type the correct extension, the checkbox turns itself off automatically. (If I type an incorrect extension, the checkbox turns on. I assume I'd get something like "filename.def.abc" in that case.) No matter whether the extension is shown in the text field, the Save panel returns a URL with the correct extension. I have no idea why you might be seeing different behavior. Except … On May 14, 2013, at 21:16 , Scott Ribe <scott_r...@elevated-dev.com> wrote: > [pnl beginSheetForDirectory: ...]; When comparing your code with mine, I realized that -[NSSavePanel beginSheetForDirectory: …] was deprecated in 10.6. Try using one of the non-deprecated methods. It *does* matter, with powerbox. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com