NSTextFieldCell 垂直居中?
我有一个 NSTableView,我使用以下代码更改行的高度:
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
{
return 32;
}
问题是,我的文本单元格仍然与单元格的顶部对齐,使其看起来很尴尬。我一直无法弄清楚如何将其垂直居中。还有其他人找到解决这个问题的方法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅“是否有一种“正确”的方法让 NSTextFieldCell 绘制垂直居中的文本?”
目前没有仅使用公共 API 的简单方法。上面链接的问题提到,未记录的
_cFlags.vCentered
字段是使其工作的最快路径,尽管它不受支持并且不能保证正确工作。另外,请注意,重写方法会导致您的代码与 AppKit 的做法不同。我刚刚为此提交了一个 Radar:
http://openradar.appspot.com/9028329 添加公共 API对于 NSCell 中垂直居中的文本
编辑:以下是一些其他相关资源:
http://www.red-sweater.com/blog/148/what-a-difference-a-cell-makes
http://www.cocoabuilder.com/archive/cocoa/174994-repositioning-an-nstextfieldcell.html
See "Is there a “right” way to have NSTextFieldCell draw vertically centered text?"
There is currently no easy way using only public API. The question linked above mentions that the undocumented
_cFlags.vCentered
field is the quickest path to making it work, although it's unsupported and isn't guaranteed to work correctly. Also, be aware that overriding methods will cause your code to diverge from what AppKit does.I just filed a Radar for this:
http://openradar.appspot.com/9028329 Add public API for vertically centering text in NSCell
EDIT: Here are some additional related resources:
http://www.red-sweater.com/blog/148/what-a-difference-a-cell-makes
http://www.cocoabuilder.com/archive/cocoa/174994-repositioning-an-nstextfieldcell.html