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