Ios 如何使用UIViewRepresentable在SwiftUI中更改UITextField的宽度?
我是IOS新手,正在使用SwiftUI。我使用UIViewRepresentable在SwiftUI中包装UITextField。但问题是: 我无法确定包裹的UITextField的宽度和高度。文本只在一行中写入,并且在写入更多文本时增加UITEXT字段的宽度 这是我的密码:Ios 如何使用UIViewRepresentable在SwiftUI中更改UITextField的宽度?,ios,xcode,swiftui,uikit,uitextfield,Ios,Xcode,Swiftui,Uikit,Uitextfield,我是IOS新手,正在使用SwiftUI。我使用UIViewRepresentable在SwiftUI中包装UITextField。但问题是: 我无法确定包裹的UITextField的宽度和高度。文本只在一行中写入,并且在写入更多文本时增加UITEXT字段的宽度 这是我的密码: struct SecondWrappedTextField: UIViewRepresentable { @Binding var text: String // Declare a binding value
struct SecondWrappedTextField: UIViewRepresentable {
@Binding var text: String // Declare a binding value
func makeUIView(context: Context) -> UITextField {
let textField = UITextField()
textField.delegate = context.coordinator
textField.textAlignment = .left
textField.contentVerticalAlignment = .top
return textField
}
func updateUIView(_ uiView: UITextField, context: Context) {
uiView.text = text // 1. Read the binded
print("Selcted Text")
let getSelectedText=UserDefaults.standard.string(forKey: text) ?? ""
let mainString = text
let stringToColor = getSelectedText
let range = (mainString as NSString).range(of: stringToColor)
let mutableAttributedString = NSMutableAttributedString.init(string: mainString)
mutableAttributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red, range: range)
uiView.attributedText = mutableAttributedString
}
func makeCoordinator() -> Coordinator {
return Coordinator(text: $text)
}
class Coordinator: NSObject, UITextFieldDelegate,ObservableObject {
@Binding var text: String
init(text: Binding<String>) {
self._text = text
}
func textFieldDidChangeSelection(_ textField: UITextField) {
DispatchQueue.main.async {
self.text = textField.text ?? "" // 2. Write to the binded
let abc = textField // 2. Write to the binded
print("TEXT")
print(self.text)
}
}
}
}
SecondWrappedTextField(text: $textNote).multilineTextAlignment(.leading).background(Color.white).frame(width:200,height:200)
struct SecondWrappedTextField:UIViewRepresentable{
@绑定变量文本:字符串//声明绑定值
func makeUIView(上下文:context)->UITextField{
设textField=UITextField()
textField.delegate=context.coordinator
textField.textAlignment=.left
textField.contentVerticalAlignment=.top
返回文本字段
}
func updateUIView(uiView:UITextField,context:context){
uiView.text=text//1.读取绑定的
打印(“选定文本”)
让getSelectedText=UserDefaults.standard.string(forKey:text)?“”
让字符串=文本
让stringToColor=getSelectedText
let range=(作为NSString的主字符串)。range(of:stringToColor)
让mutableAttributedString=NSMutableAttributedString.init(字符串:mainString)
MutableAttributeString.addAttribute(nsAttributeString.Key.foregroundColor,值:UIColor.red,范围:range)
uiView.attributedText=mutableAttributedString
}
func makeCoordinator()->Coordinator{
退货协调员(文本:$text)
}
类协调器:NSObject、UITextFieldDelegate、ObservableObject{
@绑定变量文本:字符串
init(文本:绑定){
self.\u text=文本
}
func textField didchangeSelection(textField:UITextField){
DispatchQueue.main.async{
self.text=textField.text???//2.写入绑定的
让abc=textField//2.写入绑定的
打印(“文本”)
打印(self.text)
}
}
}
}
SecondWrappedTextField(文本:$textNote).multilineTextAlignment(.leading).background(Color.white).frame(宽度:200,高度:200)
很抱歉英文不好。[Image]这能回答您的问题吗?@Asperi它只固定宽度,但当到达文本字段的边界时,文本不会进入第二行。