문제

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.

도움이 되었습니까?

해결책

You need to set the button type to NSMomentaryChangeButton.

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top