我正在尝试将一个UIStepper合并到一个UITextField中,同时增加步骤器的值,UITextField用它将其更新为该值。我不断地发现错误:
‘NSInvalidArgumentException’,原因:‘-Calculator.plitViewController stepperValueChanged::未识别的选择器发送到实例0x7fd730c0af30“
每当我运行我的应用程序,点击"+“按钮的步进。
有什么解决办法吗?我检查了我的选择器函数,我认为它看起来是正确的。
override func viewDidLoad() {
super.viewDidLoad()
partyOfStepper.autorepeat = true
partyOfStepper.minimumValue = 1
partyOfStepper.maximumValue = 99
partyOfTextField.text = "\(Int(partyOfStepper.value))"
partyOfStepper.addTarget(self, action: #selector(stepperValueChanged(stepper:)), for: .valueChanged)
}
@IBAction func calculateButtonTapped(_ sender: Any) {
}
func stepperValueChanged(stepper: UIStepper) {
let stepperMapping: [UIStepper: UITextField] = [partyOfStepper: partyOfTextField]
stepperMapping[stepper]!.text = "\(Int(stepper.value))"
}发布于 2017-01-10 08:16:03
正如Nariv所说,您的代码适用于我,请确保您以前没有在设计器中为UIStepper创建一个操作(签入连接检查器):
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var partyOfStepper: UIStepper!
@IBOutlet weak var partyOfTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
partyOfStepper.autorepeat = true
partyOfStepper.minimumValue = 1
partyOfStepper.maximumValue = 99
partyOfTextField.text = "\(Int(partyOfStepper.value))"
partyOfStepper.addTarget(self, action: #selector(stepperValueChanged(stepper:)), for: .valueChanged)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func stepperValueChanged(stepper: UIStepper) {
let stepperMapping: [UIStepper: UITextField] = [partyOfStepper: partyOfTextField]
stepperMapping[stepper]!.text = "\(Int(stepper.value))"
}
}https://stackoverflow.com/questions/41560835
复制相似问题