Skip navigation.
 
mlInitializing NSDecimalTabStopType returns NSRightTabStopType
FROM : Ross Carter
DATE : Thu Feb 21 23:30:41 2008

I've filed a bug on this (5757951) but I hope there's a workaround. 
The initializer for creating a NSTextTab of type NSDecimalTabStopType 
is initWithAlignment:(NSTextAlignment)alignment location:
(CGFloat)location options:(NSDictionary *)options. There is no 
NSTextAlignment for dec tabs, so you use NSRightTextAlignment, and the 
initializer apparently figures out that you want a decimal tab by 
looking in the options dictionary.

But usually I get a right-aligned textTab even though I've requested a 
decimal-aligned textTab. Sometimes an incantation can help:

   // Create an options dictionary to be used in creating a decimal 
NSTextTab:
   NSCharacterSet *charSet = [NSCharacterSet 
characterSetWithCharactersInString:@"."];
   NSDictionary *optionsDict = [NSDictionary 
dictionaryWithObject:charSet 
forKey:NSTabColumnTerminatorsAttributeName];
   
   // try to create a decimal NSTextTab using that options dict:
   NSTextTab *textTab1 = [[NSTextTab alloc] 
initWithTextAlignment:NSRightTextAlignment
                                                         location:location
                                                         options:optionsDict];
   NSLog(@"tabStopType is %i", [textTab1 tabStopType]);
   // Doesn't work; tabStopType is 1 (right)
   
   // Create and release a default decimal NSTextTab:
   NSTextTab *dummyTab = [[NSTextTab alloc] 
initWithType:NSDecimalTabStopType location:location];
   [dummyTab release];
   
   // Now try again to create the decimal NSTextTab using the same 
options dict:
   NSTextTab *textTab2 = [[NSTextTab alloc] 
initWithTextAlignment:NSRightTextAlignment
                                                         location:location
                                                         options:optionsDict];
   NSLog(@"tabStopType is %i", [textTab2 tabStopType]);
   // It works; tabStopType is 3 (decimal)

but sometimes I get the right-aligned textTab no matter what.

Any ideas on a sure-fire way to initialize a decimal NSTextTab?

Ross

Related mailsAuthorDate
mlInitializing NSDecimalTabStopType returns NSRightTabStopType Ross Carter Feb 21, 23:30
mlRe: Initializing NSDecimalTabStopType returns NSRightTabStopType Aki Inoue Feb 21, 23:48
mlRe: Initializing NSDecimalTabStopType returns NSRightTabStopType Ross Carter Feb 22, 18:24