Appleの開発者ドキュメントには必要なnssliderメソッド(SliderDidMove)宣言

StackOverflow https://stackoverflow.com/questions/9350319

  •  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!")
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top