modify NSComboBox to handle attributed strings

This commit is contained in:
williameveretteggplant 2024-11-04 14:23:33 -07:00 committed by GitHub
parent ec89d161b0
commit 2a14a20fb9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1775,23 +1775,39 @@ static inline NSRect buttonCellFrameFromRect(NSRect cellRect)
}
else
{
id object = nil;
if (_dataSource == nil)
{
NSLog(@"%@: No data source currently specified", self);
return nil;
}
else if ([_dataSource respondsToSelector:
@selector(comboBox:objectValueForItemAtIndex:)])
NSLog(@"%@: No data source currently specified", self);
}
else if ([_dataSource respondsToSelector:
@selector(comboBox:objectValueForItemAtIndex:)])
{
return [[_dataSource comboBox: (NSComboBox *)[self controlView]
objectValueForItemAtIndex: index] description];
}
else if ([_dataSource respondsToSelector:
@selector(comboBoxCell:objectValueForItemAtIndex:)])
object = [_dataSource comboBox: (NSComboBox *)[self controlView]
objectValueForItemAtIndex: index];
}
else if ([_dataSource respondsToSelector:
@selector(comboBoxCell:objectValueForItemAtIndex:)])
{
return [[_dataSource comboBoxCell: self
objectValueForItemAtIndex: index] description];
}
object = [_dataSource comboBoxCell: self objectValueForItemAtIndex: index];
}
if (object)
{
// Check for attributed string type and return actual string instead..
if ([object isKindOfClass :[NSAttributedString class]])
{
object = [object string];
}
else
{
object = [object description];
}
// Return the request object...
return object;
}
}
return nil;