Thanks very much for this info. I've been coding in Cocoa all year, but I'm
still a newbie to plenty of stuff, including this.
I have developed code that does permit me to append the file extension to the
filename:
- (IBAction) saveDocumentAs:(id)sender
{
NSSavePanel* theSavePanel = [[NSSavePanel alloc]init];
[theSavePanel setDirectory:[path stringByExpandingTildeInPath]];
[theSavePanel setPrompt:NSLocalizedString(@"Save",nil)];
[theSavePanel setRequiredFileType:DESIREDFILEEXTENSION];
//adapted in part from code in an Apple demo app
void (^theSavePanelHandler)(NSInteger) = ^( NSInteger result )
{
NSURL *theDirectoryURL = [theSavePanel directoryURL];
NSString *theDirectoryPath = [theSavePanel directory];
NSString* theFilename = [theSavePanel filename];
if( theDirectoryURL )
{
if( theDirectoryPath )
{
fileName = theFilename;
NSMutableArray* items = [NSMutableArray array];
//Here's where your app stores its data - of a type for which
encodeWithCoder has been implemented -
//in an NSMutableArray or other data structure accepted by
NSKeyedArchiver
[NSKeyedArchiver archiveRootObject: items toFile: theFilename];
} // if
} // if
};
[theSavePanel beginSheetModalForWindow: editorWindow
completionHandler:theSavePanelHandler];
}
That seems to work quite well. After developing that code, I learned about the
NSDocument method:
[self saveDocumentWithDelegate:self
didSaveSelector:@selector(didSaveDocument:didSave:contextInfo:)
contextInfo:nil];
If I'm using saveDocumentWithDelegate:didSaveSelector:contextInfo, what is the
correct way for me to communicate the list of suitable extensions to the Save
panel?
On Sep 3, 2011, at 3:33 PM, Quincey Morris wrote:
> On Sep 3, 2011, at 15:21 , Vik Rubenfeld wrote:
>
>> I went to the XCode App Properties panel and added an Exported UTI with file
>> extension of "CAQuickLook". However, saving the document, still does not
>> append a file extension to the file name.
>>
>> What am I missing?
>
> You're not missing anything. Saving a document does not append a file
> extension to the file name.
>
> You must provide the full file name, which includes the extension. Typically,
> it gets the correct extension because the user is presented with a Save
> panel, and *that* returns a file name to you with a suitable extension in
> place already.
>
> The Save panel gets the list of suitable extensions (and the default
> extension within that list) from the document types that you've set up for
> the app in Xcode.
>
>
_______________________________________________
Cocoa-dev mailing list ([email protected])
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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]