tags:

views:

18

answers:

2

Hi all,

Right now when I set an image over a button and make it border-less and try to click it, it always shows a rectangular portion highlighted along with the image, which is the actual dimension of button clicked.

My requirement is: I want to highlight only the image over it, not the whole rectangular portion.

Can anyone suggest me some logic to implement it?

Thanks,

Miraaj

+1  A: 

Different button types highlight differently.

I think this is probably "good enough" for what you are trying to do:

  • drag a Gradient Button from the IB palette
  • Command-1 for the Attributes view
  • untick "Bordered"
  • select your image in the "Image" popup menu

This gives you an image-only clickable button that will highly only the image itself when clicked. You can also provide an "alternative image" for the clicked state, but I don't think that will be necessary.

If this isn't quite what you were after, you need to create an IBOutlet link to the NSButtonCell and use:

- (void)setHighlightsBy:(NSInteger)aType

to determine which highlighting method is used.

Full documentation at:

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSButtonCell_Class/Reference/Reference.html#//apple_ref/occ/instm/NSButtonCell/setHighlightsBy:

I hope this helps.

Best regards,

Frank

Frank R.
thanks for your help :) However I have discovered a very easy method to do so. You can check it in my answer!
Miraaj
A: 

In IB, Attribute pane: set Type to Momentary Change.

Miraaj