title: UIButton titleColor upon selection and highlight
body: <p>I'm trying to set a <code>UIButton</code>'s <code>titleColor</code> to a certain color when it is selected and when it is highlighted, however, I need to set the button to be selected when the user touches down on the <code>UIButton</code>.</p>
  
  <p>I've set it up like so:</p>
  
  <pre><code>[button setTitleColor:normalColor forState:UIControlStateNormal];
  [button setTitleColor:superDuperSpecialColor forState:UIControlStateHighlighted];
  [button setTitleColor:superDuperSpecialColor forState:UIControlStateSelected];
  [button addTarget:self 
             action:@selector(action:) 
   forControlEvents:UIControlEventTouchDown];
  </code></pre>
  
  <p>But when the button gets selected in the <code>action:</code> method using <code>[senderButton setSelected:YES]</code>, it sets the <code>titleColor</code> to <code>normalColor</code>, rather than <code>superDuperSpecialColor</code>, which it should be, as it's both highlighted AND selected.</p>
  
  <p>Commenting out the <code>setSelected:</code> call prevents the button from becoming and staying selected and commenting out the highlighted state color doesn't have any effect, it seems.</p>
  
  <p>Will I have to add targets for <code>UIControlEventTouchCancel</code>, <code>UIControlEventTouchUpInside</code> and <code>UIControlEventTouchUpOutside</code> in order to call <code>setSelected:</code> after the highlight ends -or- change the <code>titleColor</code> for <code>UIControlStateNormal</code> to <code>superDuperSpecialColor</code> when the button gets a touch?</p>
  
  <p>On a side note, I would have liked to set the <code>titleColor</code> like so:</p>
  
  <pre><code>[button setTitleColor:superDuperSpecialColor 
               forState:(UIControlStateHighlighted | UIControlStateSelected)];
  </code></pre>
  
  <p>But that doesn't seem to work. Why is that? Does Objective-C check for state equivalency?</p>