fixing setting initial value under osx_cocoa for single line text controls

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2009-10-01 08:59:01 +00:00
parent b883113df1
commit 63bcc669d8
2 changed files with 11 additions and 6 deletions

View File

@@ -59,7 +59,8 @@ class wxMacEditHelper
public : public :
wxMacEditHelper( NSView* textView ) wxMacEditHelper( NSView* textView )
{ {
m_textView = textView ; m_textView = textView;
m_formerState = YES;
if ( textView ) if ( textView )
{ {
m_formerState = [textView isEditable]; m_formerState = [textView isEditable];
@@ -422,7 +423,7 @@ void wxNSTextViewControl::WriteText(const wxString& str)
m_lastKeyDownEvent = formerEvent; m_lastKeyDownEvent = formerEvent;
} }
void wxNSTextViewControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack ) void wxNSTextViewControl::SetFont( const wxFont & font , const wxColour& WXUNUSED(foreground) , long WXUNUSED(windowStyle), bool WXUNUSED(ignoreBlack) )
{ {
if ([m_textView respondsToSelector:@selector(setFont:)]) if ([m_textView respondsToSelector:@selector(setFont:)])
[m_textView setFont: font.OSXGetNSFont()]; [m_textView setFont: font.OSXGetNSFont()];
@@ -581,7 +582,7 @@ void wxNSTextFieldControl::controlAction(WXWidget WXUNUSED(slf),
wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer, wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
wxWindowMac* WXUNUSED(parent), wxWindowMac* WXUNUSED(parent),
wxWindowID WXUNUSED(id), wxWindowID WXUNUSED(id),
const wxString& str, const wxString& WXUNUSED(str),
const wxPoint& pos, const wxPoint& pos,
const wxSize& size, const wxSize& size,
long style, long style,
@@ -595,7 +596,6 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
wxNSTextScrollView* v = nil; wxNSTextScrollView* v = nil;
v = [[wxNSTextScrollView alloc] initWithFrame:r]; v = [[wxNSTextScrollView alloc] initWithFrame:r];
c = new wxNSTextViewControl( wxpeer, v ); c = new wxNSTextViewControl( wxpeer, v );
static_cast<wxNSTextViewControl*>(c)->SetStringValue(str);
} }
else else
{ {
@@ -615,7 +615,6 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
[v setBordered:NO]; [v setBordered:NO];
c = new wxNSTextFieldControl( wxpeer, v ); c = new wxNSTextFieldControl( wxpeer, v );
static_cast<wxNSTextFieldControl*>(c)->SetStringValue(str);
} }
return c; return c;

View File

@@ -119,7 +119,13 @@ bool wxTextCtrl::Create( wxWindow *parent,
m_peer = wxWidgetImpl::CreateTextControl( this, GetParent(), GetId(), str, pos, size, style, GetExtraStyle() ); m_peer = wxWidgetImpl::CreateTextControl( this, GetParent(), GetId(), str, pos, size, style, GetExtraStyle() );
MacPostControlCreate(pos, size) ; MacPostControlCreate(pos, size) ;
#if wxOSX_USE_COCOA
// under carbon everything can already be set before the MacPostControlCreate embedding takes place
// but under cocoa for single line textfields this only works after everything has been set up
GetTextPeer()->SetStringValue(str);
#endif
// only now the embedding is correct and we can do a positioning update // only now the embedding is correct and we can do a positioning update
MacSuperChangedPosition() ; MacSuperChangedPosition() ;