【问题标题】:set next Button & Done Button instead of return in keyboard swift 4设置下一个按钮和完成按钮,而不是在键盘 swift 4 中返回
【发布时间】:2018-10-30 10:24:55
【问题描述】:

https://i.stack.imgur.com/yNZh1.gif

当键盘出现在工具栏中时,我需要下一个按钮、上一个按钮和完成按钮 我已经实现了这段代码...

导入 UIKit

类 ViewController: UIViewController,UITextFieldDelegate {

@IBOutlet weak var textfieldOne: UITextField!
@IBOutlet weak var textFieldTwo: UITextField!
@IBOutlet weak var textFieldThree: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()

}

func setAccessoryViewFor(textField : UITextField)   {
    let toolBar = UIToolbar()
    toolBar.barStyle = .default
    toolBar.isTranslucent = true
    toolBar.sizeToFit()

    // Adds the buttons

    // Add previousButton
    let prevButton = UIBarButtonItem(title: "<", style: .plain, target: self, action: #selector(previousPressed(sender:)))
    prevButton.tag = textField.tag
    if getPreviousResponderFor(tag: textField.tag) == nil {
        prevButton.isEnabled = false
    }

    // Add nextButton
    let nextButton = UIBarButtonItem(title: ">", style: .plain, target: self, action: #selector(nextPressed(sender:)))
    nextButton.tag = textField.tag
    if getNextResponderFor(tag: textField.tag) == nil {
        nextButton.title = "Done"
    }

    let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    toolBar.setItems([prevButton,spaceButton,nextButton], animated: false)
    toolBar.isUserInteractionEnabled = true
    textField.inputAccessoryView = toolBar
}



@objc func nextPressed(sender : UIBarButtonItem) {
    if let nextResponder = getNextResponderFor(tag: sender.tag) {
        nextResponder.becomeFirstResponder()
    } else {
        self.view.endEditing(true)
    }

}

@objc func previousPressed(sender : UIBarButtonItem) {
    if let previousResponder = getPreviousResponderFor(tag : sender.tag)  {
        previousResponder.becomeFirstResponder()
    }
}

func getNextResponderFor(tag : Int) -> UITextField? {
    return self.view.viewWithTag(tag + 1) as? UITextField
}

func getPreviousResponderFor(tag : Int) -> UITextField? {
    return self.view.viewWithTag(tag - 1) as? UITextField
}

}

请任何人帮忙...

【问题讨论】:

    标签: ios swift xcode10 swift4.2


    【解决方案1】:

    您可以注册键盘出现/消失事件,并可以在其顶部添加带有nextback 按钮的UIToolBar。或者,只需集成 this 库,几行代码就完成了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 2023-03-09
      • 1970-01-01
      • 2023-03-26
      • 2011-02-19
      • 2011-05-28
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多