In my opinion, I think 2 things are important about this.
1) Water temperature is SUPER important. I've noticed that on rivers that during mornings, when water tends to be in mid 40's, surface takers are not so common but as the morning/afternoon progresses and the water warms the surface action turns on. I really believe that 50+ degrees F is optimum.
2) Cloud cover and/or water level. Low water is fine but then only morning/evening or all day with cloud cover. Higher water seems to be OK all day.
As an example, Last week I got 4 steelhead one day before noon, 3 on the surface and it was nice cloudy day/drizzly and water temp was 53-54degrees F due to overnight cloud cover. The next morning the water was down to low 40's and I ran through without a touch dry, then put on a wet fly on the dry line and fished it just below the surface and got this fish below. My first fish on a 4wt - note the sz 3/4 battenkill.