discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gui fixes


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 date
formatters.

- (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 the
attributedStringValue method of NSActionCell. This is easy to add, still
you 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]