菜鸟教程小白 发表于 2022-12-11 19:28:42

ios - 带有导出集合和标签的注册表单


                                            <p><p>我是 Swift 语言的新手。我有 Web 开发方面的知识,但我需要你的帮助。 </p>

<p>我需要创建一个包含导出集合的注册页面。我有 4 个文本字段,并为每个字段分配了标签。当我打算使用beingfirstresponder()将光标从一个文本字段移动到另一个时,它不起作用,当我打印标签时,就像我为它的文本字段分配了一个标签一样,它并不总是打印相同的。 </p>

<p>它以随机顺序出现。这是代码。</p>

<pre><code>import UIKit

class ViewController: UIViewController,UITextFieldDelegate {

@IBOutlet var registerTF: !


@IBAction func registerTFTapped(_ sender: UITextField) {

   let tag = sender.tag
   print(tag)
    for tf in registerTF
    {
   if tf.tag == tag
   {

      func textFieldShouldReturn( _ textField: UITextField) -&gt; Bool {

            nextTextFieldToFirstResponder(textField: textField)

            return true;
      }

      func nextTextFieldToFirstResponder(textField: UITextField) {

            if tf.tag == 0 {

                self.becomeFirstResponder()

            }
            else if tf.tag == 1 {

                self.becomeFirstResponder()

            }
            else if tf.tag == 2 {

                self.becomeFirstResponder()

            }
            else if tf.tag == 3 {

                self.resignFirstResponder()

            }

      }

      }
    }
}

//LifeCycle-Starts

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

override func viewWillAppear(_ animated: Bool) {
    //#
}

override func viewDidAppear(_ animated: Bool) {
    //#
}

override func viewWillDisappear(_ animated: Bool) {
    //#
}

override func viewDidDisappear(_ animated: Bool) {
    //#
}

//LifeCycle-Ends

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这只有在 TextFields 集合中的顺序等于标签顺序时才有效</p>

<pre><code>import UIKit

class ViewController: UIViewController,UITextFieldDelegate {

    @IBOutlet var registerTF: !

    func nextTag(currentTag:Int)-&gt;Int{

      if(currentTag &lt; registerTF!.count - 1){
            return currentTag + 1
      }
      return -1
    }

    func nextTextFieldToFirstResponder(textField: UITextField) {

      let nextTag = self.nextTag(currentTag: textField.tag)

      if(nextTag &gt;= 0){
            self.registerTF!.becomeFirstResponder()
      }else{
            textField.resignFirstResponder()
      }
    }

    func textFieldShouldReturn(_ textField: UITextField) -&gt; Bool {
      self.nextTextFieldToFirstResponder(textField: textField)
      return true
    }

    //LifeCycle-Starts

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

      for textField in registerTF {
            textField.delegate = self
      }
    }

    override func viewWillAppear(_ animated: Bool) {
      //#
    }

    override func viewDidAppear(_ animated: Bool) {
      //#
    }

    override func viewWillDisappear(_ animated: Bool) {
      //#
    }

    override func viewDidDisappear(_ animated: Bool) {
      //#
    }

    //LifeCycle-Ends

    override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 带有导出集合和标签的注册表单,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47885040/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47885040/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 带有导出集合和标签的注册表单