diff --git a/Foundation/CPDecimalNumber.j b/Foundation/CPDecimalNumber.j index 7221cd2e5..cc97c2177 100644 --- a/Foundation/CPDecimalNumber.j +++ b/Foundation/CPDecimalNumber.j @@ -28,6 +28,8 @@ // The default global behavior class, created lazily var CPDefaultDcmHandler = nil; +var CPDecimalNumberUIDs = new CFMutableDictionary(); + /*! @class CPDecimalNumberHandler @ingroup foundation @@ -531,6 +533,20 @@ var CPDecimalNumberHandlerRoundingModeKey = @"CPDecimalNumberHandlerRoundi } // instance methods + +- (CPString)UID +{ + var UID = CPDecimalNumberUIDs.valueForKey(self); + + if (!UID) + { + UID = objj_generateObjectUID(); + CPDecimalNumberUIDs.setValueForKey(self, UID); + } + + return UID + ""; +} + /*! Returns a new CPDecimalNumber object with the result of the summation of the receiver object and \c decimalNumber. If overflow occurs then the diff --git a/Tests/AppKit/CPTextFieldTest.j b/Tests/AppKit/CPTextFieldTest.j index bca749b45..f14bfb6a7 100644 --- a/Tests/AppKit/CPTextFieldTest.j +++ b/Tests/AppKit/CPTextFieldTest.j @@ -29,6 +29,7 @@ [numberFormatter setNumberStyle:CPNumberFormatterDecimalStyle]; [numberFormatter setMaximumFractionDigits:3]; + [numberFormatter setGeneratesDecimalNumbers:NO]; [control setFormatter:numberFormatter]; [control setStringValue:@"12.3456"]; diff --git a/Tests/Foundation/CPNumberFormatterTest.j b/Tests/Foundation/CPNumberFormatterTest.j index 81d994824..29deac36a 100644 --- a/Tests/Foundation/CPNumberFormatterTest.j +++ b/Tests/Foundation/CPNumberFormatterTest.j @@ -62,6 +62,7 @@ [numberFormatter setMinimum:10]; [numberFormatter setMaximum:20]; + [numberFormatter setGeneratesDecimalNumbers:NO]; [self assertTrue:[numberFormatter getObjectValue:objectValueRef forString:@"10" errorDescription:nil] message:@"MinMax T1: Expected True."];