0

如何让当前的 NSControl 点击 NSWindow?我在 NSWindowController 上有一个鼠标按下事件,
-(void)mouseDown:(NSEvent *)theEvent {
但是当我在放置在 NSWindow 上的 NSControls 内单击时,我根本没有调用鼠标按下事件。
我什至将 NSControls 子类化为自定义 NSViews,但是在内部单击时我也没有收到他们的鼠标按下事件。我添加 setAcceptsTouchEvents了是并调用了acceptsFirstResponder,但它没有帮助。令人惊讶的是,当我单击 NSWindow 而不是任何 NSControls 时,我得到了 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];
}

编辑:

目标应该是实现该方法的类实例。因此,例如,如果您的应用程序委托中有一个 IBAction 连接到名为 sliderReport: 的滑块,那么请执行以下操作:

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