我对编码比较陌生,所以请耐心等待。我编写了一个简单的应用程序,它有6个文本字段需要在按下操作按钮才能执行数学计算之前完成。
我已经完成了所有工作,但我无法使用下一个按钮移动到下一个文本字段。我已经添加了工具栏和完成和下一个按钮但是当我按下下一个按钮时,应用程序崩溃,我得到一个“线程1:信号SIGABRT”。
我已经通过互联网,我正在努力想看看它是如何做到的。我原以为这会很直接。
我无法让下一个按钮执行到下一个框的动作。
这是我的代码
导入UIKit
类ViewController:UIViewController,UITextFieldDelegate {
// IBOutlet UITextFields在这里
override func viewDidLoad() {
super.viewDidLoad()
let toolBar = UIToolbar()
toolBar.barStyle = .default
toolBar.isTranslucent = true
toolBar.sizeToFit()
let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let fixedSpaceButton = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
let doneButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.done, target: self, action: #selector(self.doneClicked))
let nextButton = UIBarButtonItem(title: "Next", style: .plain, target: self, action: #selector(self.textFieldShouldReturn(_:)))
toolBar.setItems([fixedSpaceButton, nextButton, flexibleSpace, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
box1.delegate = self
box2.delegate = self
box3.delegate = self
box4.delegate = self
box5.delegate = self
box6.delegate = self
box1.becomeFirstResponder()
}
func doneClicked() {
view.endEditing(true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool
{
switch textField
{
case box1: box2.becomeFirstResponder()
break
case box2: box3.becomeFirstResponder()
break
case box3: box4.becomeFirstResponder()
break
case box4: box5.becomeFirstResponder()
break
case box5: box6.becomeFirstResponder()
break
default: textField.resignFirstResponder()
}
return true
}
//数学计算的IBAction就在这里
我提前感谢任何帮助。我确实没有留下头发。
由于