簡単なオーディオ フェーダーを実装しようとしています。それに応じてグラフィックスを描画できるように、NSSlider と NSSliderCell をサブクラス化しました。
Cmd キーが押された状態でハンドルがクリックされるたびに、スライダーが定義された位置にジャンプするようにします。これは、ほとんどのオーディオ アプリケーションで非常に一般的です。
スライダーへの値の設定は問題なく機能していますが、アクション メソッドを呼び出して、値が変更されたことをターゲットに通知しません。これは、「スーパー」の 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 のクラスの説明を参照してください。
しかし、セレクターがどのような名前になるかはわかりません。ターゲットはおそらく超?
どんな助けでも大歓迎です!!
一番、
フロー