Hello i'm back :o) Xavier Glattard <xavier.glattard <at> online.fr> writes:
> Andreas Höschler <ahoesch <at> smartsoft.de> writes: > > > >> The TextField is validated in textDidEndEditing: > > >> IMO its not a bug > > >> (see Cocoa reference) > > (...) > > I haven't read the spec. But even without having done so I would say > > that posting a textDidChange notification is not of much use if the > > delegate method is not able to figure out to what the value had been > > changed. I don't know whether Apple is calling validateEditing, but > > they definitely make sure that objectValue reflects the changes made > > before this notification is posted. > > I dont have a Mac. But that make sense to me that the field was validated > only when the edition ends. Before that the returned object would be nil > most of the time. That's ok for a simple number but not for a more complex > object like a Date or Time. > I dont know what you need to do with the value of the field but the > following should always work : > [[valueField currentEditor] string] > > Anyway you're right : your code should work. I found out in the Cocoa specs > that the -*Value methods must invokes the -validateEditing method before > extractingand returning the value. -textDidChange doesnt. > > IMHO the bug is in NSNumberFormatter. I did have problem with this class. Please forget this. -validateEditing is invoked by NSActionCell in any -*Value method but -objectValue ! So [NSCell -objectValue] is invoked that does not validate the field. I suggest either adding -objectValue to NSActionCell or move the -validateEditing calls to NSControl. The later conforms better to the specs but there might be a good reason to validate in NSActionCell... _______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
