Ladies, I don't know what to do.
My stepson was same way...except he was "very" catered to by the rest of his family. His mom was on her own, doesn't cook, so he was used to the "fast food" lifestyle...getting whatever he wanted. I cook all the time, and believe in sitting at the table. So when we ate, I just routinely "introduced" new foods over and over again while making sure there was "something" he'd eat as a part of dinner. He loved hotdogs so I'd start off making hotdogs and serving chili and potato salad on the side (instead of chips or fish crackers that he was used to). He'd eat the hot dog, and not touch the rest. Eventually, he'd get curious and eat a bite. I think it just takes time...Keep trying, don't give up...I heard it a million times from my MIL "how'd you get him to eat that?" He is now a GREAT eater...he loves to try new things...he may not "like" them, but he always gives them a try...kid even loves sushi...
I know a lot of people say "just let them go to bed hungry," but I came from a family that didn't make you eat something you didn't like. It was just always offered, and if I didn't like it, we could have a peanut butter sandwich (or something) instead. None of us are picky eaters now (We outgrew it by 8 or 9)...My little brother went through a stage where he only ate mayonnaise sandwiches breakfast, lunch, and dinner...
So my advice, is keep offering him new foods, but have "something" for him to eat (so he isn't waking you up). Peer pressure also works great, so if there's an older cousin around who will eat it, send them over for dinner :)
I guess I just get frustrated - I've read "Oh, it can take up to 12 times of seeing a new food for a child to try it" and I KNOW we've given him things more than 12 times, so it's like WHY won't he try it...
Some children have sensory issues that make the taste and/or texture of foods less appealing to them. It takes longer for them to learn to like new foods because they have more issues to overcome.
Two of my kids have developmental delays. Both of them plus another ds all had food sensory problems. All have become better eaters, to some degree, but it took LOTS of repeat exposure to foods and many years.
One thing that helped was to build on foods the kids already liked -- if your ds likes dipping his chicken nuggets in catsup or sauce, pick another food (like french fries) to let him dip in sauce. Let ds dip his grapes in yogurt or pudding. Then add other fruits to be dipped in the pudding or yogurt (maybe serve with toothpicks for more interest?). Use the graham crackers to make sandwiches (filled with peanut butter, jelly, cream cheese, etc).
Another thing that helped was to let my kids help choose new foods to try and/or help prepare our meals. They were slightly more willing to try something they'd chosen or fixed. We also grew a few veggies in containers on our balcony, and my kids were willing to taste foods they'd grown themselves.
Try less common fruits -- like canned mandarin oranges or mangoes, which might have a smoother texture and be more appealing.
You can try serving "milkshakes" made of milk and canned fruit and/or bananas. They're smooth and sweet. You can throw in a few baby spinach leaves. It'll turn the drink green, but you can't taste them.
Try jell-o. Once ds likes jell-o, try putting fruit pieces in jell-o.
Try serving foods in a silly way -- pancake in the shape of Mickey Mouse's head or a letter. Cut a sandwich into itty-bitty squares for miniature sandwiches you can serve at a picnic on the floor in the kitchen.
I found that peer pressure was helpful to some level. When my kids ate their snacks in nursery at church, they'd eat what everyone else was eating, even if they'd always refused it at home before.
My kids can taste when I try to hide veggies in their food and can find the tiniest shreds of it. However, they surprised me by liking my carrot-zucchini muffins made partly with whole wheat flour. I used a zucchini cake recipe, decreased the sugar, added carrots (which add sweetness), and the kids think it's a treat.
My kids also surprised me by liking foods I'd never have guessed they'd like, such as frosted shredded wheat, or cracklin oat bran cereal.
When my oldest dd was your ds age, she ate pasta (plain) and a few fruits. If we changed the shape of the pasta, it took awhile for dd to accept it. Over time as she grew/matured, and with enough exposures to new foods, she eventually grew to like more foods.
It may be a long, slow process, but eventually your ds should learn to like food (even if you do tear your hair out in the process).
My DS (almost 4) is beyond a picky eater.
kayla is a pretty good eater so far but i had huge issues with her when she was younger - we couldn't get her off pureed foods until 16mos when she started daycare.
to this day, while she's pretty good right now, she won't eat certain things at home but will eat everything at daycare (go figure!). i asked the caregiver how she got her to do that and she told me that she basically tells kayla to eat whatever is in front of her until she's full and then she can go and play. i think kids know who they can push and who they can't. so taking the caregiver's advice, i will remain firm with kayla regarding eating.
she often takes a few bites of dinner or whatever and then says "all done" and then asks for fruit. i know she just wants the fruit but i will look her in the eye and tell her "kayla, you need to finish your dinner then mommy will give you some fruit". then we'll go through the song and dance of "nooooo!" and i will repeat the same thing. this can take up to 5mins but i will not move and keep repeating myself. eventually, kayla will start eating again and after she's really done, i will give her lots of kisses and ask her what fruit she wants.
kayla sometimes doesn't want to try new things so i will tell her: just taste it and if you don't like it, you don't have to eat it. sometimes she won't even do that so i am bad and i will put a little on her lips (against her will) which then she will lick and usually she will eat it. of course, there are times when she just won't have anything to do with what's in front of her and i can tell when it's a losing battle so i will just give her something else that i know she will eat. but i dont' give in very easily.
i think what also helps is that i don't give kayla very many snacks throughout the day. she only has 2 snacks/day - one to hold her over until lunch and another about 1hr or so before dinner - so by the time lunch or dinner rolls around, she's hungry. oh, and i also feed her lunch and dinner at the same time every day, give or take 15mins. daycare also feeds her lunch at 1130am every day.
hope this helps!