Question

In Interface Builder, I have set the dataCell of one of the columns of my NSTableView instance to be NSButtonCell. This works as expected, however, trying to use a ‘template’ image doesn't yield the expected visual result when clicking the button.

How I configure the NSButtonCell:

  • Image: NSRevealFreestandingTemplate
  • Scaling: None
  • Bezel: Bevel
  • Type: Momentary Push In
  • Bordered: false

Expected result when clicking the button:

  • Since the image is a ‘template’, the button should render its ‘on’ state.
  • The background, ie the space surrounding the image, should not change.

Actual result when clicking the button:

  • No difference in the ‘state’ of the rendered image.
  • The background color changes to white.

Even-though I’ve tried my best to make the explanation of the problem as concise as possible, I’ve also made a simple screencast to visually illustrate the problem. And uploaded the demo app.

Was it helpful?

Solution

You need to set the button type to NSMomentaryChangeButton.

OTHER TIPS

So, the solution turns out to be; don't use template images for this…

I decided to show the correct image states myself and discovered that with a non-template image, it works fine.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top