void wxNSComboBoxControl::SetSelectedItem(int item)
{
- wxASSERT_MSG(item >= 0 && item < [m_comboBox numberOfItems], "Inavlid item index.");
SendEvents(false);
- [m_comboBox selectItemAtIndex: item];
+
+ if ( item != wxNOT_FOUND )
+ {
+ wxASSERT_MSG( item >= 0 && item < [m_comboBox numberOfItems],
+ "Inavlid item index." );
+ [m_comboBox selectItemAtIndex: item];
+ }
+ else // remove current selection (if we have any)
+ {
+ const int sel = GetSelectedItem();
+ if ( sel != wxNOT_FOUND )
+ [m_comboBox deselectItemAtIndex:sel];
+ }
+
SendEvents(true);
}
int wxNSComboBoxControl::FindString(const wxString& text) const
{
- int result = [m_comboBox indexOfItemWithObjectValue:wxCFStringRef( text , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
- if (result == NSNotFound)
+ NSInteger nsresult = [m_comboBox indexOfItemWithObjectValue:wxCFStringRef( text , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
+
+ int result;
+ if (nsresult == NSNotFound)
result = wxNOT_FOUND;
+ else
+ result = (int) nsresult;
return result;
}