Tag: nstextfieldcell

是否有一个“正确”的方式让NSTextFieldCell绘制垂直居中文本?

我有一个NSTableView与几个文本列。 默认情况下,这些列的dataCell是Apple的NSTextFieldCell类的一个实例,它完成各种奇妙的事情,但它绘制与单元格顶部alignment的文本,我希望文本在单元格中垂直居中。 在NSTextFieldCell中有一个内部标志,可以用来垂直居中文本,而且工作起来非常漂亮。 然而,由于它是一个内部的标志,它的使用不受苹果的批准,它可能会在未来的版本中没有任何警告地消失。 我目前正在使用这个内部标志,因为它简单而有效。 苹果显然花了一些时间来实现这个function,所以我不喜欢重新实现它的想法。 所以; 我的问题是这样的: 什么是正确的方式来实现一些行为完全像苹果的NStextFieldCell,但绘制垂直居中文本,而不是顶端alignment? 为了logging,这里是我目前的“解决scheme”: @interface NSTextFieldCell (MyCategories) – (void)setVerticalCentering:(BOOL)centerVertical; @end @implementation NSTextFieldCell (MyCategories) – (void)setVerticalCentering:(BOOL)centerVertical { @try { _cFlags.vCentered = centerVertical ? 1 : 0; } @catch(…) { NSLog(@"*** unable to set vertical centering"); } } @end 用法如下: [[myTableColumn dataCell] setVerticalCentering:YES];