|
From: | Andreas Höschler |
Subject: | Re: gui fixes |
Date: | Fri, 31 Aug 2007 14:24:20 +0200 |
Hi all,
Until this is properly figured out, I have changed the above method(temporary hack) as follows, since the above caused problems with dateformatters. - (void)textDidChange: (NSNotification *)aNotification { NSMutableDictionary *dict; // validate NSNumbers immediately so that objectValue returns reasonable values in controlTextDidChange: if ([(NSFormatter *)[_cell formatter] isKindOfClass:[NSNumberFormatter class]]) { [self validateEditing]; } ... }Sorry, I am not sure, if I understand this. You surely found a problem in GNUstep, as we don't call validateEditing for theattributedStringValue method of NSActionCell. This is easy to add, stillyou insist on your completely different change, so you must have a reason for that.
I removed the above hack and instead implemented the following in NSCell.
- (NSAttributedString*) attributedStringValue { if (_formatter != nil) { NSDictionary *attributes; NSAttributedString *attrStr; + SEL sel = @selector(validateEditing);+ if ([[self controlView] respondsToSelector:sel]) [[self controlView] performSelector:sel];
attributes = [self _nonAutoreleasedTypingAttributes];attrStr = [_formatter attributedStringForObjectValue: _object_value
withDefaultAttributes: attributes]; ... } - (id)objectValue { + SEL sel = @selector(validateEditing);+ if ([[self controlView] respondsToSelector:sel]) [[self controlView] performSelector:sel];
if (_cell.has_valid_object_value) { return _object_value; } else { return nil; } }This solves the problem as well and is probably less hackish. Any objections?
Regards, Andreas
[Prev in Thread] | Current Thread | [Next in Thread] |