0

現在の NSControl を NSWindow でクリックするにはどうすればよいですか? NSWindowController にマウス ダウン イベントがあり
-(void)mouseDown:(NSEvent *)theEvent {
ますが、NSWindow に配置された NSControls 内をクリックすると、マウス ダウン イベントがまったく呼び出されません。
NSControls をカスタム NSViews にサブクラス化しましたが、内部をクリックしてもマウス ダウン イベントを受け取りません。yesに追加 setAcceptsTouchEventsし、acceptsFirstResponder を呼び出しましたが、役に立ちません。驚いたことに、NSControls ではなく NSWindow をクリックすると、mousedown イベントが発生します。
ここで何が間違っていますか?

4

1 に答える 1

1

これを試してください

 - (void) mouseDown:(NSEvent *)theEvent
{
if ( ([theEvent modifierFlags] & NSCommandKeyMask) != 0)
{
    [self setFloatValue:100.0f];
    [self.target performSelector:self.action withObject:self];
}
else
    [super mouseDown:theEvent];
}

編集:

ターゲットは、そのメソッドが実装されているクラス インスタンスである必要があります。したがって、たとえば、sliderReport: というスライダーに接続されたアプリ デリゲートに IBAction がある場合は、次のようにします。

   [self sendAction:@selector(sliderReport:) to:[NSApp delegate]];
于 2013-01-23T18:31:31.667 に答える