]> git.saurik.com Git - wxWidgets.git/commitdiff
Tell NSTextField to send us its action message and respond to it so we can generate...
authorDavid Elliott <dfe@tgwbd.org>
Fri, 10 Aug 2007 18:40:56 +0000 (18:40 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Fri, 10 Aug 2007 18:40:56 +0000 (18:40 +0000)
Copyright 2007 Software 2000 Ltd.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cocoa/textctrl.h
src/cocoa/textctrl.mm

index 4adacb081e1126f04a024d47918a28645aeb2b58..290ac2a485db71e71dd1fd66795dd059c9bace6f 100644 (file)
@@ -50,6 +50,7 @@ public:
 // ------------------------------------------------------------------------
 protected:
     virtual void Cocoa_didChangeText(void);
+    virtual void CocoaTarget_action(void);
 // ------------------------------------------------------------------------
 // Implementation
 // ------------------------------------------------------------------------
index d755334440dc98d2d1744b34a50c3e8cc6e77e49..cbab8ea2f1850e8a81d6a775864aa53fe401bbba 100644 (file)
@@ -59,6 +59,10 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID winid,
     if(m_parent)
         m_parent->CocoaAddChild(this);
     SetInitialFrameRect(pos,size);
+
+    [(NSTextField*)m_cocoaNSView setTarget: sm_cocoaTarget];
+    [(NSTextField*)m_cocoaNSView setAction:@selector(wxNSControlAction:)];
+    
     return true;
 }
 
@@ -71,6 +75,19 @@ void wxTextCtrl::Cocoa_didChangeText(void)
 {
 }
 
+void wxTextCtrl::CocoaTarget_action(void)
+{
+    // NSTextField only sends the action message on enter key press and thus
+    // we send the appropriate event type.
+    wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, GetId());
+
+    // See wxTextCtrlBase::SendTextUpdatedEvent for why we don't set the string.
+    //event.SetString(GetValue());
+
+    event.SetEventObject(this);
+    GetEventHandler()->ProcessEvent(event);
+}
+
 void wxTextCtrl::AppendText(wxString const&)
 {
 }