我有一个NSDatePicker(目标)和datePickerAction(动作)

- (IBAction)datePickerAction:(id)sender
{

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

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

}


当我单击NSDatePicker对象中的日期时,它的工作原理很好,方法(操作)被调用,问题是方法被调用了两次-鼠标向下/向上。

我可以仅一次(向上或向下)调用该方法吗?

编辑

我只有要选择的方法。



这是连接检查器。

最佳答案

不幸的是,我认为您不能在Interface Builder中以这种方式设置NSDatePicker(或NSDatePickerCell,具体而言),而必须以编程方式进行设置。

这是一个对我来说很好的解决方法:

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


请注意,您不能在此处使用NSLeftMouseDownMask! (当然,您可以...但无济于事。)

10-08 05:31