我即将实现一个简单的音频推子。我将 NSSlider 和 NSSliderCell 子类化,以便能够相应地绘制图形。
每当按下 Cmd 键单击手柄时,我希望滑块跳到定义的位置。这在大多数音频应用程序中很常见。
将值设置为滑块可以正常工作,但它不会调用 action 方法来通知我的目标值已更改。这必须发生在“super”的 mouseDown 事件处理中的某个地方,可能在 NSControl 中。这是我到目前为止得到的:
- (void) mouseDown:(NSEvent *)theEvent
{
if ( ([theEvent modifierFlags] & NSCommandKeyMask) > 0)
[self setFloatValue:100.0f];
else
[super mouseDown:theEvent];
}
我在 NSControl 文档中找到了一个看起来很有希望的方法:
-(BOOL)sendAction:(SEL)theAction to:(id)theTarget Parameters :
theAction :在目标上调用的选择器。如果选择器为 NULL,则不发送任何消息。
theTarget :接收消息的目标对象。如果对象为 nil,则应用程序在响应者链中搜索能够处理消息的对象。有关调度操作的更多信息,请参阅 NSActionCell 的类描述。
但我不知道选择器的名称是什么。目标可能是超级?
任何帮助深表感谢!!
最好的,
弗洛