Deriving a class from NSButton is not a daunting task by any imagination, you 
only need understand that NSButton is nothing more than a wrapper class for 
NSButtonCell. 

As for the HIG.... it is a recommendation, and it indeed serves a purpose (IE 
for programmers who thing all their users are programmers. However, you can not 
design and effective POS (Point of Sale/Service) system using only what the 
toolkit provides.

The reason you can not change the color, is because most of these are custom 
drawn (perhaps even NSImages), just like you would when you override the 
ButtonCell with your own implementation of it. Apple has simply provided a base 
set which are very nice and clean, and should be used as examples for future 
work. This is MUCH cleaner than trying to expose every possible option for 
changing the look of a control. Why? When you can simply expose the draw 
function, which apple has done; which it would not have, if it did not intend 
for users to to user :)

The fact of the mater is I too need buttons that are much larger 


//

//  CustomButtonCell.h

//

//

#import <Cocoa/Cocoa.h>
@interface POSButtonCell : NSButtonCell <NSCopying> {}
- (id)copyWithZone:(NSZone *)zone;
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;
@end

//
//  CustomButtonCell.m
//
#import "POSButtonCell.h"

@implementation POSButtonCell
- (id) init {

    self = [super init];
    
    if (self) {    /* PUT YOUR INIT CODE HERE  */  }
 
    return self;
}

// So you can use with NSMatrix
- (id)copyWithZone:(NSZone *)zone{ return [[POSButtonCell alloc] init]; }


- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
    switch ([self state]) {
        case NSOnState :
                 // Draw on state
           break;
        case NSMixedState :
                // Draw mixed state        
            break;
        default:
        case NSOffState :
...
            break;
    }


}    


@end



> From: dangerwillrobinsondan...@gmail.com
> Date: Sun, 23 Jan 2011 09:43:07 -0600
> To: pinkpoppy_sandia...@yahoo.com
> CC: Cocoa-dev@lists.apple.com
> Subject: Re: how to change NSButton color
> 
> 
> On Jan 23, 2011, at 8:14 AM, Dianne wrote:
> 
> > I want to change the buttons color from the normal gray to dark gray to 
> > indicate 
> > whether the button is assigned to other values other than its default 
> > value. 
> > 
> > Is there any other or best way to do this? what you can suggest?
> > Thanks,
> > Yani
> > 
> > 
> > 
> Normally, if a button changes its functionality, you should at least change 
> the label or icon inside the button.
> Effectively, you are changing the button to perform a different action.
> You might actually want to consider what the button needs to do in your 
> application and revisit the types of controls already available in Cocoa and 
> described in the Human Interface Guidelines. There might be a better control 
> for the purpose of this button._______________________________________________
> 
> 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/shashaness%40hotmail.com
> 
> This email sent to shashan...@hotmail.com
                                          
_______________________________________________

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/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to