相关疑难解决方法(0)

在Swift中设置UITextField的最大字符长度

我知道还有其他主题,但我似乎无法找到如何实现它.

我试图将UITextField限制为只有5个字符

优选字母数字和 - 和.和_

我见过这段代码

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
                       replacementString string: String) -> Bool
{
    let maxLength = 4
    let currentString: NSString = textField.text
    let newString: NSString =
             currentString.stringByReplacingCharactersInRange(range, withString: string)
    return newString.length <= maxLength
}
Run Code Online (Sandbox Code Playgroud)

和

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

    let length = count(textField.text.utf16) + count(string.utf16) - range.length
    return length <= 10 
}
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何实际实现它或我应该换出哪个"textfield"我的自定义命名为UITextField

string character uitextfield ios swift

64
推荐指数
8
解决办法
9万
查看次数

SwiftUI 验证文本字段中的输入

我试图通过使用正则表达式删除某些字符来验证 TextField 中的用户输入。不幸的是,我遇到了text递归调用自身 var的 didSet 方法的问题。

import SwiftUI
import Combine

class TextValidator: ObservableObject {

    @Published var text = "" {
        didSet {
            print("didSet")
            text = text.replacingOccurrences(
                of: "\\W", with: "", options: .regularExpression
            ) // `\W` is an escape sequence that matches non-word characters.
        }
    }

}


struct ContentView: View {

    @ObservedObject var textValidator = TextValidator()

    var body: some View {
        TextField("Type Here", text: $textValidator.text)
            .padding(.horizontal, 20.0)
            .textFieldStyle(RoundedBorderTextFieldStyle())

    }
}
Run Code Online (Sandbox Code Playgroud)

在swift 文档(请参阅 AudioChannel 结构)中,Apple 提供了一个示例,其中在其自己的 didSet 方法中重新分配了一个属性,并明确指出这不会导致再次调用 …

swift swiftui

10
推荐指数
3
解决办法
3999
查看次数

SwiftUI:输入 1 个字符后是否可以自动移动到下一个文本字段?

我试图制作一个 SwiftUI 应用程序,在其中输入一个字母后TextField,光标会自动移动到下一个TextField. 用户界面非常像这样。

在 Swift/IB 中,看起来这是通过委托完成的,并在这篇文章中添加了一个目标: 如何在 Swift 中自动移动到下一个 UITextField

但是找不到任何在 SwiftUI 中使用委托/目标的文档。

我尝试关注这篇文章: SwiftUI TextField max length 但这对我不起作用。设置.prefix(1)似乎没有什么区别。在TextField仍然接受任何字符数量,当移动到下一个TextField不降低进入到只有第一个字符的字符。

在SwiftUI的当前状态下,是否可以TextField在输入1个字符后自动移动到下一个?

谢谢你的帮助!

textfield swiftui

6
推荐指数
1
解决办法
1364
查看次数

标签 统计

swift ×2

swiftui ×2

character ×1

ios ×1

string ×1

textfield ×1

uitextfield ×1