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 に答える