4

フォームにNSDatePickerを1つ追加し、スタイルをグラフィカルに設定し、次のようにアクションを設定します。

[datePicker setAction:@selector(datePickSelected:)];

このメソッドでは、選択した日付を出力するだけです。

-(void)datePickSelected:(id)sender
{
    NSLog(@"%@",[datePicker dateValue]);
}

動作しますが、この日付ピッカーで日付をクリックすると2回実行されます。どうしてこれなの?

2011-05-25 15:17:09.382 xxx[6609:a0f] 2011-05-13 15:17:04 +0800
2011-05-25 15:17:09.677 xxx[6609:a0f] 2011-05-13 15:17:04 +0800
4

3 に答える 3

3

これを修正するには、次のようにします。

- (void) awakeFromNib {
  [datePickerControl sendActionOn:NSLeftMouseDown];  
}
于 2012-06-13T07:50:17.163 に答える
2

最初の答えは私にはうまくいきません。私は今これをSwiftで使用しています:

override func awakeFromNib() {
    self.datePicker.target = self
    self.datePicker.action = Selector("dateSelected:")
    let action = Int(NSEventMask.MouseExitedMask.rawValue)
    self.datePicker.sendActionOn(action)
}

(しかし、少し奇妙です。アクションは現在、mouseUp ではなく mouseDown で呼び出されますが、それは今の私にとっては問題ではありません...)

于 2015-05-01T22:02:04.680 に答える