This is the expected behaviour :) But what you can do (and actually what you wanna do) is to accept the text at each keyStroke :)
> initializePresenter > self instantiateModels: #( > textName TextModel > labelGreeting LabelModel > buttonGreet ButtonModel > ). > labelGreeting text: ''. > buttonGreet label: 'Greet Me!'; disable. should be turned into: #initializePresenter textName := self newTextInput. labelGreeting := self newLabel. buttonGreet := self newButton. labelGreeting text: ''. buttonGreet label: 'Greet Me!'; disable. textName autoAccept: true. Keep me in touch :) Ben On 06 Nov 2013, at 06:05, Bahman Movaqar <bah...@bahmanm.com> wrote: > Hi all, > > I'm writing a simple graphical version of the legendary "Hello, world". I > have a window with a text field, a button and a label. What I'm trying to do > is to make the button (which is initially disabled) enabled upon user > entering text. However, it seems that the user first must "Accept" the text > for the action to be fired. > > Here's some snippets of code: > > <code> > initializePresenter > textName whenTextChanged: [ > buttonGreet enable ]. > buttonGreet action: [ > labelGreeting text: 'Hello, ', textName text, '!'. > buttonGreet disable ]. > > > > initializeWidgets > self instantiateModels: #( > textName TextModel > labelGreeting LabelModel > buttonGreet ButtonModel > ). > > labelGreeting text: ''. > buttonGreet label: 'Greet Me!'; disable. > </code> > > What am I doing wrong? > > TIA, > > PS: I have tried `whenTextChanged` to no avail --it shows the same behaviour. > -- > Bahman Movaqar (http://BahmanM.com) > > ERP Evaluation, Implementation & Deployment Consultant > PGP Key ID: 0x6AB5BD68 (keyserver2.pgp.com)