我想在实时代码中垂直对齐标签文本,例如对齐顶部,中间或底部。
----------------------------------
| top text |
| |
| |
---------------------------------
---------------------------------
| |
| middle text |
| |
---------------------------------
---------------------------------
| |
| |
| bottom text |
---------------------------------
有没有办法做到这一点?如果不是,是否有其他方法可以做到这一点?
答案 0 :(得分:1)
没有内置的方法可以自动定位标签文字。但是,除非您需要字段的文本格式属性,否则使用按钮作为标签可能会更好地满足您的需求,因为它可以自动垂直居中文本。
以下内容应该可以帮助您完成大部分工作。您可以直接将脚本粘贴到按钮中并发送" updateMyTextAlignment< value>"到值为"顶部","中间"的按钮或"底部"。但假设您的堆栈中有多个自定义标签,则更好的选择是将以下内容作为行为应用于所有标签按钮。
command updateMyTextAlignment pValue
put effective textSize of me into TS
put effective textHeight of me into TH
switch pValue
case "top"
set topMargin of me to -(height of me) + TS + TH
break
case "middle"
set topMargin of me to 0 -- may need to adjust this amount
break
case "bottom"
set topMargin of me to height of me - TS - TH
end switch
end updateMyTextAlignment
答案 1 :(得分:0)
不幸的是,属性窗口中没有选项,但您可以使用像
这样的简单脚本来执行此操作 set the topMargin of field theField to (round(((the height of field theField - the formattedHeight of field theField)/2)) + the topMargin of field theField)
上边距示例
更新: 最高保证金的最简单示例:
set the topMargin of field theField to 0
然后将0调整为您想要的顶部值,例如你的字体大小左右。
对于中间我会使用像
这样的东西set the topMargin of field theField to (the height of field theField / 2)
也许可以通过考虑字体大小来调整它。