1

我创建了一个 NSButton(见下面的代码)。该按钮显示我想要的方式(无边界,文本上方的图像)。如果我单击按钮的文本部分,按钮将按下并调用它的操作。如果我单击按钮的图像部分,那么绝对不会发生任何事情。如何使 NSButton 的图像部分可点击?我确定我可以将 NSButtonCell 子类化以使其工作,但我不明白为什么有必要这样做。

NSButton *button = [[NSButton alloc] initWithFrame:NSZeroRect];
[button setBezelStyle:NSRegularSquareBezelStyle];
[button setBordered:YES];
[button setImagePosition:NSImageAbove];
[button setButtonType:NSMomentaryChangeButton];
[button setImage:[NSImage imageNamed:@"myImage"]];
[button setTitle:@"Button Title"];
[button setTarget:self];
[button setAction:@selector(buttonAction:)];
4

2 回答 2

0

也许其他一些视图与您的按钮图像重叠?在上面的代码中,当然,如果您提供适当的按钮框架,一切正常(对于有边框和无边框按钮)。在干净的项目中尝试。

于 2014-05-01T16:24:23.230 回答
0

按钮本身的图像。无需使其可点击。您的点击事件将被 buttonAction 捕获。

您只需要显示图像被点击的动画。为此,您需要另一个反向图像。并跟踪鼠标按下事件,当你单击向下显示其他图像,当你释放鼠标(鼠标向上)显示默认图像。

这将给人一种点击图像的感觉。

于 2013-01-25T16:34:01.307 回答