]> git.saurik.com Git - wxWidgets.git/commitdiff
content must be changeable by wx even though control may be disabled
authorStefan Csomor <csomor@advancedconcepts.ch>
Mon, 20 Apr 2009 19:23:57 +0000 (19:23 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Mon, 20 Apr 2009 19:23:57 +0000 (19:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/cocoa/textctrl.mm

index 32717d37d09e01c85cbd54f6151e68aefb400985..a8537ae536619436d8d6a0d8945a55cd3f725fe3 100644 (file)
 #include "wx/osx/private.h"
 #include "wx/osx/cocoa/private/textimpl.h"
 
+@interface NSView(EditableView) 
+- (BOOL)isEditable;
+- (void)setEditable:(BOOL)flag;
+@end
+
+class wxMacEditHelper
+{
+public :
+    wxMacEditHelper( NSView* textView )
+    {
+        m_textView = textView ;
+        if ( textView )
+        {
+            m_formerState = [textView isEditable];
+            [textView setEditable:YES];
+        }
+    }
+
+    ~wxMacEditHelper()
+    {
+        if ( m_textView )
+            [m_textView setEditable:m_formerState];
+    }
+
+protected :
+    BOOL m_formerState ;
+    NSView* m_textView;
+} ;
+
 @interface wxNSSecureTextField : NSSecureTextField
 {
 }
@@ -324,6 +353,7 @@ void wxNSTextViewControl::SetStringValue( const wxString &str)
 {
     wxString st = str;
     wxMacConvertNewlines10To13( &st );
+    wxMacEditHelper helper(m_textView);
 
     if (m_textView)
         [m_textView setString: wxCFStringRef( st , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
@@ -394,7 +424,8 @@ void wxNSTextViewControl::WriteText(const wxString& str)
 {
     wxString st = str;
     wxMacConvertNewlines10To13( &st );
-
+    wxMacEditHelper helper(m_textView);
+    
     [m_textView insertText:wxCFStringRef( st , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
 }
 
@@ -421,6 +452,7 @@ wxString wxNSTextFieldControl::GetStringValue() const
 
 void wxNSTextFieldControl::SetStringValue( const wxString &str) 
 {
+    wxMacEditHelper helper(m_textField);
     [m_textField setStringValue: wxCFStringRef( str , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
 }
 
@@ -511,6 +543,7 @@ void wxNSTextFieldControl::WriteText(const wxString& str)
     NSText* editor = [m_textField currentEditor];
     if ( editor )
     {
+        wxMacEditHelper helper(m_textField);
         [editor insertText:wxCFStringRef( str , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
     }
     else