2015-09-28 36 views
1

我想设置一个标题像NSMenuItem用的setTitle列

名称:________等级:

blbalb_______5

aksjdnaas____6

123123123 ..._ 7

q____________8

假设_ =空

可能吗? 如果有人能指导我如何?

我试图做这样

- (NSString *)getFromatedAppDescription 
{ 
// NSMutableString * formatedString = [[NSMutableString alloc]init]; 

    NSString * name = _userName; 
    if ([name length] > MAX_NAME_LENGTH) 
    { 
     name = [NSString stringWithFormat:@"%@...",[name substringToIndex: MAX_NAME_LENGTH - 3]];//Truncate Tail 
    } 

    return [NSString stringWithFormat:@"%-15s %d",[name UTF8String],_rank]; 
} 

但它失败:(

编辑:

我解决它通过创建NSView和添加有NSTextFields但我结束了5 NSTExtFields我怀疑这是效率低下的解决方案:-(我仍然希望看到一些人的一些提示,因为我渴望尽可能提高性能

+0

代码看起来不错,你有什么? –

+0

嗯字符有不同的宽度:-(字符我是约2像素,而字符5 :-( – ColdSteel

+0

我解决了它通过创建'NSView'并添加那里'NSTextFields'但我结束了5'NSTExtFields'我怀疑它是效率低下的解决方案:-( 我仍然希望看到一些来自这里的人的提示,因为我渴望尽可能提高性能 – ColdSteel

回答

1

您可以通过将文本的字体设置为等宽字体来实现此目的,请参阅Wikipedia上的Monospaced font

+0

伟大的一个!!谢谢你:-) – ColdSteel

+0

不客气:) –

2

可以使用attributedTitleNSAttributedString*)的NSMenuItem和使用上的NSMutableParagraphStyleNSTextTab属性设置右手或小数点对齐制表位的attributedTitle(和只添加标签,并在值之间的标签字符串attributedTitle)。

+0

谢谢,这工作后,我也设置'defaultTabInterval'上'NSMutableParagraphStyle' – Andrew