我有一行TextField
,我希望在末尾用省略号(...
)截断多余的文本。
我尝试使用truncationMode
API,但它根本不起作用,而且它还完全打乱了TextField
的选择。
下面是在一个全新的普通SwiftUI MacOS项目上重现该问题的代码:(运行** Monterey RC 1、Xcode 13.1 RC 1**):
struct ContentView: View {
@State var text = ""
@State var text2 = ""
var body: some View {
NavigationView {
Text("Sidebar")
TextField("Placeholder", text: $text)
.font(.largeTitle)
.truncationMode(.tail)
TextField("Click on me to lose focus", text: $text2)
.frame(width: 100)
}
}
}
运行应用程序,然后在大文本框中输入一堆文本,你应该会发现文本框的选择没有修剪,但也有不稳定的行为。
我试着将NSTextField
与NSViewRepresentable
一起使用,效果很好,除了我还试图将文本居中。
如果文本居中并且设置了NSTextField.lineBreakMode
,则当占位符可见时光标不会转到正确的位置。
我想知道是否有人能够重现这个问题,如果是,有什么解决办法吗?
1条答案
按热度按时间m1m5dgzv1#
在macOS 13 Ventura中,您必须设置轴才能截断TextField。除非您设置了截断修饰符,否则轴用于在文本无法容纳在可用空间中时确定文本的滚动方向。