• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: problems in runModal in NSOpenPanel used with defaults
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems in runModal in NSOpenPanel used with defaults


  • Subject: Re: problems in runModal in NSOpenPanel used with defaults
  • From: Corbin Dunn <email@hidden>
  • Date: Mon, 29 Sep 2008 08:47:12 -0700


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 <email@hidden> 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 (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: problems in runModal in NSOpenPanel used with defaults
      • From: "spartan g" <email@hidden>
References: 
 >problems in runModal in NSOpenPanel used with defaults (From: "spartan g" <email@hidden>)
 >Re: problems in runModal in NSOpenPanel used with defaults (From: Corbin Dunn <email@hidden>)
 >Re: problems in runModal in NSOpenPanel used with defaults (From: "spartan g" <email@hidden>)

  • Prev by Date: More on Keyboard Event posting
  • Next by Date: Re: Making NSTableView column headers editable
  • Previous by thread: Re: problems in runModal in NSOpenPanel used with defaults
  • Next by thread: Re: problems in runModal in NSOpenPanel used with defaults
  • Index(es):
    • Date
    • Thread