Это зависит от того, как ваше меню показывает изображение. Если это сам пункт меню, это невозможно без большого количества взлома. Если вы используете собственный NSView в меню, то вы можете использовать два NSImageViews и переключаться между ними, используя -animator представления.
Вы бы сопоставили кадр imageViewB с imageViewA, если это еще не сделано, затем замените подпредставление через аниматор:
[[parentView animator] replaceSubview:imageViewA with:imageViewB];
... или обратно с b на a.
К сожалению, прокси -animator NSImageView не будет анимировать -setImage: (без видимой причины), поэтому вам нужно использовать два представления и анимировать своп.