Yes I know this one
Ok you may need your chain mail gloves at first but it definately works.
It is all about teaching patience so you first need to teach the wait command. However you can teach this command at the same time as teaching them to take the treat calmly.
Step 1 - make doggy sit, put a high value treat firmly between your index finger and thumb like your pinching it.
Step 2 - when they are still in a sit and not jumping up (trying to take the skin off your legs for the treat)
very slowly start to move the treat towards their mouth saying wait.
Step 3 - Everytime their mouth goes to snap for the food or moves towards your hand you pull your hand back to the beginning and start again from step 1 making sure they don't get the food. (if they did just start again anyway)
Step 4 - they eventually get the food when you have managed to take it right up to their nose and leave it there for a second then say ok and they should take it gently
If they are still snapping when you say ok and have it at their nose you need to try (and this is where the chain mail gloves come in) and not realise the treat on the snap so they have not been rewarded for it.
My two savage beasts learnt this very quickly and I cursed myself for putting up with beatings I had endured for years everytime they took food.
I would probably suggest working one on one initially till they grasp it.
You can also use this command for other things, going through doors, jumping on your lap etc.
Let me know if its not clear or you need more help.