gpt4 book ai didi

cocoa - 单击 NSControl 时不会调用 mouseDown 事件,即使在子类 NSView 上也不会调用

转载 作者:行者123 更新时间:2023-12-03 17:55:22 24 4
gpt4 key购买 nike

如何获取当前NSWindow上点击的NSControl?我在 NSWindowController 上有一个鼠标按下事件,
-(void)mouseDown:(NSEvent *)theEvent {
但是当我单击放置在 NSWindow 上的 NSControls 内部时,我没有得到鼠标根本没有调用 down 事件。
我什至将 NSControls 子类化为自定义 NSViews,但在内部单击时我也没有收到它们的鼠标按下事件。我将 setAcceptsTouchEvents 添加到 yes 并调用 AcceptFirstResponder 但它没有帮助。令人惊讶的是,当我单击 NSWindow 而不是任何 NSControls 时,我收到了 mousedown 事件。
我在这里做错了什么?

最佳答案

试试这个

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

编辑:

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

   [self sendAction:@selector(sliderReport:) to:[NSApp delegate]];

关于cocoa - 单击 NSControl 时不会调用 mouseDown 事件,即使在子类 NSView 上也不会调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com