site_archiver@lists.apple.com Delivered-To: Cocoa-dev@lists.apple.com Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type:references; bh=qRw7wooBhON2OuWPCGvzsJ1CHhdjFcgcthqcVCS8WvM=; b=TDZJ/y2EkrNMzmfxeOODw6mYDxV47hDItqDnBezGs5veaNZlWzmEwNoVEoGHqPrmWT mpRIzBytfp6ZJdD2v2QKaB/+Bf0Y0puabsAhqdPORdbrvpm/yTt4gisgU5mmgW3yE4X8 E0zguyMvA4gQwyFQS5TFuus6JdPN8qjaSozfM= Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=iJH/RpqqmgQM8gsemAYzdQk/Z3L6YFS8deMfLhQjA0s0ztr3t1SU5I6rSdzSFJjN8B dlbM3QHwrS9lTbbv8Q0RUDjf+yEalwsLBkPF3yhQBKl0uVIA1T9JNsmHnprIQGOdqC3a qQrj/0HSZZ+PPmCJIgRx3xOKNzE9CxTd3/YCo= Oh Yes... Thanks Mike. I got your point corbin. I was thinking that I am messing somewhere in using the panel properties!!! In fact that behavior, now, seems very helpful to get the last opened directory.. Very much Helpful... Once again Thanks Mike, Thanks Corbin.... Best Regards, Spartan... On Mon, Sep 29, 2008 at 9:17 PM, Corbin Dunn <corbind@apple.com> wrote:
On Sep 26, 2008, at 10:34 PM, spartan g wrote:
Thanks Corbin, I have used your tips in the updated code. Besides, my aim is to save the filename selected through the panel to a pList file timely whenever it is changed, so I am using synchronization of defaults. I checked and found that there is no resetStandardUserDefaults used anywhere in the entire project. I tried implementing dictionary insted of defaults and updating the pList contents accordingly. But to my surprise, in either cases(dictionary/defaults), whenever I click browse and click cancel/open the junk values are appended automatically in the pList file!!! For the time being I am deleting and recreating the file, but it doesn't seem a good alternative!!! How can a 'Panel runModal' add such junk in the pList!!!
Michael already clarified a bit, but it sounds like your definition of junk isn't what I had expected. I assumed you were reading in bad (unexpected) values, ie: junk. But I think you are referring to the other values the save panel places there. As michael said, this is just the way it works. Consider using NSDictionary and writeToFile:... instead
corbin
Sparta...
On Fri, Sep 26, 2008 at 10:48 PM, Corbin Dunn <corbind@apple.com> wrote:
Howdy spartan,
Oh! A few little tips:
On Sep 26, 2008, at 3:11 AM, spartan g wrote:
Hi,
I am writing an utility which needs to open a panel to browse files and select one.
- (IBAction)browseClicked:(id)sender
{
NSOpenPanel *panel = [NSOpenPanel openPanel];
if ([panel runModal]) {
NSArray *filenames = [panel filenames];
NSString *filename = [filenames objectAtIndex:0];
Always check the array length first, or just use [panel filename];
if (filename){
printf("\n browseClicked: filename = %s \n", [filename cString]);
Just a side note: most cocoa people move to NSLog, but printf still works. Try: NSLog(@"%@", filename); -- much easier!
if ([appToOpenText stringValue] != NULL ){
nil is preferred to NULL.
[appToOpenText setStringValue: filename];
}
else printf("\n browseClicked: appToOpenText has NULL value \n");
}
else printf ("\n *** browseClicked: Filename is NULL *** \n");
}
} The filename chosen is assigned to the textfield. I have used defaults to synchronize this filename and storing it in a pList file. [_defaults setObject: [appToOpenText stringValue] forKey: @"AppToOpen" ];
It seems strange to use the user defaults as your model to store objects, but i'm sure there is a reason you do this.
[_defaults synchronize];
You probably don't want to hold onto the userdefaults instance as an ivar, and instead always query it with [NSUserDefaults standardUserDefaults]. It may be possible that something is calling resetStandardUserDefaults, and blowing away the old instance.
corbin
_______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/site_archiver%40lists.apple... This email sent to site_archiver@lists.apple.com