Show Dialog Message Box in Objective-C Cocoa

There are a few ways to achieve this in Objective-C/Cocoa, and I found NSAlert to be the simplest base class for this purpose.

See example below of a small Utility class with this functionality.

Util.h

#import <Cocoa/Cocoa.h>

@interface Util: NSObject {
}

+(void)MessageBox:(char*) header:(char*) message: (unsigned long) message_type;

+(void)MessageBox:(NSString *) header:(NSString *) message;

@end

Util.m


#import "Util.h"

@implementation Util

+(void)MessageBox:(NSString *) header:(NSString *) message
{
CFOptionFlags result;

CFUserNotificationDisplayAlert(
0, //timeout
kCFUserNotificationNoteAlertLevel, //icon
NULL, //icon url
NULL,
NULL,
header,
message,
NULL, //button options default to just "ok"
CFSTR("Cancel"),
NULL,
&result //response
);

if (result==kCFUserNotificationDefaultResponse)
return NSAlertDefaultReturn;
else
return NSAlertErrorReturn;
}

+(void)MessageBox:(char*) header:(char*) message: (unsigned long) message_type
{
CFStringRef header_ref = CFStringCreateWithCString(NULL,header,strlen(header));
CFStringRef message_ref = CFStringCreateWithCString(NULL,message,strlen(message));

CFOptionFlags result;

CFUserNotificationDisplayAlert(
0,
kCFUserNotificationNoteAlertLevel,
NULL,
NULL,
NULL,
header_ref,
message_ref,
NULL,
CFSTR("Cancel"),
NULL,
&result
);

CFRelease(header_ref);
CFRelease(message_ref);

if (result==kCFUserNotificationDefaultResponse)
return NSAlertDefaultReturn;
else
return NSAlertErrorReturn;
}
@end

References
iphonedevsdk.com, http://www.iphonedevsdk.com/forum/iphone-sdk-development/8478-simple-message-box-popup.html
blogspot.com, Jorge Arimany, http://jorgearimany.blogspot.com/2010/05/messagebox-from-windows-to-mac.html
Google Codesearch (“kCFUserNotification”),

About Ronnie Diaz

Ronnie Diaz is an enterprise software engineer responsible for front-end and back-end development for companies in many industries. Heavily involved in cloud development, online retail, e-commerce and electronic ordering, fulfillment and customer relational systems.

Posted on June 13, 2011, in Programming & Development and tagged , , , , , , , , , , , , . Bookmark the permalink. 2 Comments.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: