X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c072b9ec8a5a9f65743ecbd16b0b0bb9dbc8b46b..f9b4d680d72930c31fe14dd63421a85d97ccd739:/src/osx/cocoa/combobox.mm diff --git a/src/osx/cocoa/combobox.mm b/src/osx/cocoa/combobox.mm index 1666c33b83..4aec03feb3 100644 --- a/src/osx/cocoa/combobox.mm +++ b/src/osx/cocoa/combobox.mm @@ -95,9 +95,21 @@ int wxNSComboBoxControl::GetSelectedItem() const 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); } @@ -132,9 +144,13 @@ wxString wxNSComboBoxControl::GetStringAtIndex(int pos) const 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; }