Appleの開発者ドキュメントには必要なnssliderメソッド(SliderDidMove)宣言
-
27-10-2019 - |
質問
nssliderを使用したチュートリアルに取り組んでいます。
私が欲しいもの:スライダーを移動すると、nstextfieldにスライダー値が表示されます。
チュートリアルは、次の方法でテキストフィールドにスライダー値が表示されることを説明しています。
- (IBAction)sliderDidMove:(id)sender {
NSSlider *slider = sender;
double value = [slider doubleValue];
[sliderValueLabel setDoubleValue:value];
}
方法が機能しないため、Apples Developer Webサイトでメソッド宣言を見つけようとしましたが、見つかりませんでした。私の理解から、方法は次のとおりです。SliderDidMoveクラスnssliderのクラスメソッドなので、なぜドキュメントを見つけることができないのですか?
解決
スライダー値が変更されると、送信されます -[NSControl action]
それに -[NSControl target]
. 。したがって、インターフェイスビルダーでは、スライダーからオブジェクトにctrl-dragをctrl-dragする必要があります。 sliderDidMove:
(それはおそらくアプリデリゲートまたはファイルの所有者のいずれかです)。名前はチュートリアルの著者によって選択されています。それは他のものです。
または、プログラムでセットアップすることもできます。
[slider setTarget:self]; // assume the handler is [self sliderDidMove:]
[slider setAction:@selector(sliderDidMove:)];
また、この特定のタスクは、バインディングでよりよく解決されることに注意してください。 double
一部のオブジェクトのプロパティとココアは、それらを同期し続けます。
他のヒント
の Swift
...
// Somewhere maybe in viewDidLoad ...
slider.target = self
slider.action = #selector(sliderDidMove)
// Later on..
func sliderDidMove(){
print("The slider moved!")
}
所属していません StackOverflow