1

NSDatePicker(ターゲット)とdatePickerAction(アクション)があります

- (IBAction)datePickerAction:(id)sender
{

    if( [[[NSApplication sharedApplication] currentEvent] modifierFlags] & 
       NSShiftKeyMask )
        NSLog(@"shift pressed %@", [datePicker dateValue]);

    else
        NSLog(@"hello %@", [datePicker dateValue]);

}

NSDatePickerオブジェクトで日付をクリックすると、メソッド(アクション)が呼び出されるのと同じように機能します。問題は、メソッドが2回呼び出されることです(マウスを下/上)。

メソッドを1回だけ(上または下)呼び出すことはできますか?

編集

選択する方法しかありません。

ここに画像の説明を入力してください

そして、これは接続検査官です。 ここに画像の説明を入力してください

4

2 に答える 2

4

NSDatePicker残念ながら、Interface Builderでこのように設定する(または具体的に)ことはできないと思いますがNSDatePickerCell、代わりにプログラムで設定する必要があります。

これが私にとってうまく機能する回避策です:

- (void)awakeFromNib
{
    // Assuming @property (assign) IBOutlet NSDatePickerCell *pickerCell;
    [self.pickerCell sendActionOn:NSLeftMouseDown]; // or NSLeftMouseUp or what have you...
}

ここでは使用できないことに注意してくださいNSLeftMouseDownMask!(まあ、あなたはできるので...しかしそれは助けにはなりません。)

于 2011-03-14T21:47:51.930 に答える
-1

通常、特定のイベントのターゲットとアクションを追加する必要があります。IBを使用して接続する場合は、接続インスペクターを確認してください。ターゲットとアクションのペアを設定できる制御イベントのリストがあります。イベントを選択し、アクションメソッドにドラッグします。

于 2011-03-14T19:15:12.453 に答える