• 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: Date compiled?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Date compiled?


  • Subject: Re: Date compiled?
  • From: Bill Monk <email@hidden>
  • Date: Tue, 27 May 2008 17:20:07 -0500


On 27 May '08, at 9:16 AM, Jeff LaMarche wrote:

Is there any way to make this work with the standard about box, or do
I have to hand-roll one in order to make this work? I'm assuming the
latter, but figured I'd ask just in case; I hate reinventing the wheel.

I've done this for a client before, __DATE__ and __TIME__ work fine, just clean and build the project before delivery (which you'd do anyway) to ensure they're current.


And no need to hand-roll an About box! Just disconnect the About menu from
-orderFrontStandardAboutPanel and connect it to your own action method that calls
-orderFrontStandardAboutPanelWithOptions:. That's all the normal method does, except you'll add some options to override default display strings; any you ignore take the usual values.


It's not infinitely flexible, but it's easy to customize the basic panel with only a few lines of code.

- (IBAction)showCustomAboutPanel:(id)sender
{
NSString *compileDate = [NSString stringWithCString:__DATE__ encoding:NSASCIIStringEncoding];


NSString *compileTime = [NSString stringWithCString:__TIME__ encoding:NSASCIIStringEncoding];
// would normally run these through a formatter to internationalize

// grab the default value for About Panel's @"Version" key
// from plist. Could be "build nnnn", "0.2a7" etc.
NSString *buildVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

// result is "buildVersion, date, time"
NSString *displayString = [NSString stringWithFormat:@"%@, %@, %@", buildVersion, compileDate, compileTime];


// override default short version string
NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:displayString, @"Version", nil];

// Final appearance depends on value of
// CFBundleShortVersionString in plist,
// and/or key @"ApplicationVersion" in
// options dictionary.
//
// If @"ApplicationVersion" key is added,
// CFBundleShortVersionString is ignored.
// For a key value of "DEMO VERSION",
// About panel will display
// "DEMO VERSION (nnnn, date, time)"
//
// If @"ApplicationVersion" key is not added,
// CFBundleShortVersionString in plist
// will be used, if it exists.
// For a value of "x.x", About will display
// "Version x.x (buildVersion, date, time)"
// For a value of "WhizBang '08", About will
// omit the word "Version" and display
// "WhizBang '08 (buildVersion, date, time)"
//
// If CFBundleShortVersionString does not
// exist, About displays
// "Version (buildVersion, date, time)"

[NSApp orderFrontStandardAboutPanelWithOptions:optionsDictionary];
}


_______________________________________________

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: Date compiled?
      • From: Andy Lee <email@hidden>
  • Prev by Date: Re: Dealing with NSError outside of the Responder chain
  • Next by Date: Which framework for Wifi?
  • Previous by thread: Re: Date compiled?
  • Next by thread: Re: Date compiled?
  • Index(es):
    • Date
    • Thread