And*_*dre 0 cocoa margin objective-c nstextfield
我一直在为这一个寻找解决方案.
我有4个NSTextFields(实际上是一些自定义操作的子类),它们都共享相同的X位置.
问题是,有些人有不同的风格(浅色,普通,粗体),可能有不同的尺寸.
会发生的是,即使X原点相同,第一个字母总是有一些(始终不同的)左边距.
请参见图片:https://dl.dropbox.com/u/1977230/Screen%20Shot%202012-12-11%20at%2017.55.58.png
我想确保所有行都从同一点开始,比如从左边开始100px.
知道如何覆盖那个奇怪的填充吗?
干杯
你正在谈论的余量我非常确定是由lineFragmentPadding... NSTextContainer使用的NSTextField.
请参阅NSTextContainer参考:
这是文本布局教程中的一个页面:
它在该文章中指出:
排版机在实际将文本插入矩形时进行最后一次调整.此调整是由NSTextContainer对象修复的一小部分,称为行片段填充,它将行片段矩形每端的部分定义为空白.文本在线段矩形内插入此量(矩形本身不受影响).填充允许对边缘处和任何孔周围的文本容器区域进行小规模调整,并使文本不会直接邻接区域附近显示的任何其他图形.您可以使用setLineFragmentPadding:方法更改填充的默认值.注意,线段填充不是表达边距的合适方法;
不幸的是,它看起来像NSTextField的NSTextContainer和NSLayoutManager是私人,交通不便,但现在看来他们是在访问一个NSTextView:
因此,如果您想要对这种功能进行微小控制,那么这可能是您需要子类的类.