【问题标题】:How to make TextField align right (trailing)如何使 TextField 右对齐(尾随)
【发布时间】:2019-10-26 08:54:12
【问题描述】:

我正在尝试以尾随对齐方式显示 TextField 的值。

如您所见,值 34.3 以前导对齐方式显示。

我确定我遗漏了一些明显的东西,但我不知道是什么。有什么想法吗?

@State private var endwert = 34.3

var numberFormatter: NumberFormatter {
    let formatter = NumberFormatter()
    formatter.numberStyle = .decimal
    formatter.locale = Locale.current
    return formatter
}

...

HStack {

  Text("Endwert")
    .frame(width: nil, height: nil, alignment: .topTrailing)
    .background(Color .green)

  Spacer()

  TextField($endwert, formatter: numberFormatter)
    .background(Color.yellow)
    .frame(width: nil, height: nil, alignment: .trailing)

  Text("m2")
}

【问题讨论】:

  • 尝试将 TextField 的参数替换为字符串文字“34.3”。数字格式化程序看起来不错,但如果在数字之后以某种方式添加空格,那么示例中的尾随对齐将是正确的。简单的说。号码后面不能有空格(黄底的空格)
  • 我就是从那里来的。没有数字格式化程序,结果是一样的。我实际上希望使用 numberformater swiftui 确定它是一个数字并对齐尾随。但事实并非如此。

标签: ios swift swiftui


【解决方案1】:

.multilineTextAlignment(.trailing) 添加到您的文本字段中:

TextField($endwert, formatter: numberFormatter)
  .multilineTextAlignment(.trailing)
  ...

结果:

【讨论】:

  • 谢谢。而已!再一次,解决方案很明显......我没有尝试 multiline* 修饰符,因为我在想“不......我在这里没有做多行的事情”。
猜你喜欢
  • 1970-01-01
  • 2018-03-09
  • 2020-04-08
  • 2021-05-13
  • 2018-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
相关资源
最近更新 更多