Ios 文本字段的最小字符数?(Swift)

Ios 文本字段的最小字符数?(Swift),ios,swift,Ios,Swift,我目前正在进行登录和注册(Xcode 7,Swift2)。如果用户注册并在文本字段中键入所需用户名,我希望他至少键入5个字符。因此,如果他离开文本字段并且没有输入至少5个字符,则会显示一条消息get,告诉他至少输入5个字符。 我只知道如何确定字符的最大数量,但无法根据需要进行调整。 这是我当前的代码: import UIKit class ViewController: UIViewController,UITextFieldDelegate { // Mark: Propertie

我目前正在进行登录和注册(Xcode 7,Swift2)。如果用户注册并在文本字段中键入所需用户名,我希望他至少键入5个字符。因此,如果他离开文本字段并且没有输入至少5个字符,则会显示一条消息get,告诉他至少输入5个字符。 我只知道如何确定字符的最大数量,但无法根据需要进行调整。 这是我当前的代码:

import UIKit

class ViewController: UIViewController,UITextFieldDelegate {

    // Mark: Properties

    @IBOutlet weak var Username: UITextField!
    @IBOutlet weak var Password: UITextField!
    @IBOutlet weak var Status: UILabel!
    @IBOutlet weak var DesiredUsername: UITextField!


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // Mark: Actions

    @IBAction func CreateAccount(sender: UIButton) {
    }
    @IBAction func LoginButtonTapped(sender: UIButton) {

        if (Username.text == "janoschvongehr" && Password.text == "test123") {
          performSegueWithIdentifier("SeguetoPeople", sender: nil)
        }

        if (Username.text == "" || Password.text == "") {
        Status.text = "Nicht alle Felder ausgefüllt"
        }

        self.Username.resignFirstResponder()
        self.Password.resignFirstResponder()
    }
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        self.view.endEditing(true)
    }

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        self.view.endEditing(true)
        return true
    }


}
导入UIKit
类ViewController:UIViewController、UIExtFieldDelegate{
//马克:财产
@ibvar用户名:UITextField!
@IBOUTLE弱var密码:UITextField!
@IBOUTLE弱var状态:UILabel!
@IBMOutlet弱var DesiredUsername:UITextField!
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
//马克:行动
@iAction func CreateCount(发件人:UIButton){
}
@iAction func LoginButtonTapped(发件人:UIButton){
如果(Username.text==“janoschvongehr”&&Password.text==“test123”){
performsguewithidentifier(“seguetople”,发件人:nil)
}
如果(Username.text==“”| | Password.text==“”){
Status.text=“Nicht alle Felder ausgefüllt”
}
self.Username.resignFirstResponder()辞职
self.Password.resignFirstResponder()辞职
}
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
self.view.endEditing(true)
}
func textField应返回(textField:UITextField)->Bool{
self.view.endEditing(true)
返回真值
}
}
我刚开始编程,所以如果你能让答案尽可能简单就好了。
谢谢大家

看起来您已经完成了90%的工作,尤其是您已经为文本字段设置了一个委托

试着做:

func textFieldShouldReturn(textField: UITextField) -> Bool {
        if ( textField.text.count < 5 )
        {
             // create a warning label IBOutlet and set it to hidden
             //
             // reveal it only upon leaving the text field when the
             // length is less than 5
             warningLabel.hidden = false;
        }
        self.view.endEditing(true)
        return true
    }
func textField应返回(textField:UITextField)->Bool{
如果(textField.text.count<5)
{
//创建警告标签IBOutlet并将其设置为隐藏
//
//仅当
//长度小于5
warningLabel.hidden=false;
}
self.view.endEditing(true)
返回真值
}
func textField应返回(textField:UITextField)->Bool{

如果textField.text!.characters.count<5{ warningLabel.hidden=false } self.view.endEditing(true) 返回真值 }

应该可以了。

我创建了一个警告标签,并尝试了以下操作:
func textFieldShouldReturn(textField:UITextField)->Bool{if(DesiredUsername.text.length<5){//创建一个警告标签IBOutlet,并将其设置为hidden////仅当//长度小于5 warninglabel.hidden=false;}self.view.endEditing(true)return true}
时,才在离开文本字段时显示它“textfieldshouldreturn的重新声明无效”和“字符串类型的值”没有成员长度“哇……您需要使用
count
而不是
length
来获取该文本字段中的字符数。此外,您是否在视图控制器中声明了两次
textFieldShouldReturn
?是的,我已经为
func textFieldShouldReturn(textField:UITextField)->Bool声明了
textFieldShouldReturn
{self.view.endEditing(true)return true}
此外,我还遇到了“count不可用:没有通用的好答案,请参阅文档注释进行讨论”的问题。这是我当前的代码:
func textField shouldReturn(textField:UITextField)->Bool{if(textField.text!.count<5){//仅当//长度小于5 warninglabel.hidden=false;}self.view.endEditing(true)return true}
差不多了!但我仍然遇到了“textFieldShouldReturn的重新声明无效”的问题刚刚命名为textFieldShouldReturn2,现在我没有显示任何问题。但是警告标签总是可见的,无论我键入什么,少于5个字符还是多于5个字符。你在类中的某个地方有另一个textFieldShouldReturn方法吗?没有,但问题已经解决了。我的问题是,警告标签是从不隐藏,无论我输入多少个字符。if textField.text!.characters.count<5{warningLabel.hidden=false}否则{warningLabel.hidden=true}怎么样?
func textFieldShouldReturn(textField: UITextField) -> Bool {
    if textField.text!.characters.count < 5 {
         warningLabel.hidden = false
    }
    self.view.endEditing(true)
    return true
}