Делегирование ведет себя неожиданно для NSDatePicker. Можно подумать, что становление делегатом для NSDatePicker означает, что вы будете получать события уведомлений от NSControl, родительского класса NSDatePicker.
Однако это не так. Делегат устанавливается в ячейке NSDatePicker, поэтому ваш класс делегата будет получать события из ячейки (в соответствии с протоколом NSDatePickerCellDelegate), а не элемент управления. Есть только один из этих методов делегата ячейки, метод проверки.
Вы можете перепрыгивать через подклассы NSDatePicker и получать делегирование для элемента управления, но тогда вы теряете делегирование проверки, от которого другие части иерархии представлений зависят. Я подозреваю, что метод target / action или использование привязок - единственный способ перехватить взаимодействие с пользователем в этом случае.