私は、テキストフィールドに文字列を与えるsegmentedControlを持っています。私も2つのテキストフィールドを持っています。 1つはユーザ入力用であり、2つ目はセグメント化制御テキストフィールドとユーザ入力テキストフィールドからの計算を行うためのものです。 segmentedcontrolindexが変更された場合、どうすれば計算テキストフィールドを自動的に更新できますか? ユーザ入力のテキストフィールドでは、テキストフィールドの変更メソッドが機能します。おかげ segmentedcontrol/textfield/DidChange
@IBOutlet weak var segmentedcontrol: UISegmentedControl!
@IBOutlet weak var textf: UITextField!
@IBOutlet weak var textf1: UITextField!
@IBOutlet weak var textf2: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
textf.delegate = self
textf1.delegate = self
textf2.delegate = self
// 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.
}
@IBAction func textf1(sender: AnyObject) {
let result = (textf.text! as NSString).doubleValue * (textf2.text! as NSString).doubleValue
textf1.text = String(format:"%.2f", result)
}
@IBAction func segmentedcontrolAction(sender: AnyObject) {
if(segmentedcontrol.selectedSegmentIndex == 0)
{
textf2.text = "5";
}
else if(segmentedcontrol.selectedSegmentIndex == 1)
{
textf2.text = "10";
}
else if(segmentedcontrol.selectedSegmentIndex == 2)
{
textf2.text = "15";
}
}
あなたがセグメント化された制御用の 'IBOutlet'は必要ありません。これは、 'segmentedcontrolAction'のパラメータ' sender'として渡されます。そして、あなたは 'switch sender.selectedSegmentIndex {case 0:...}'や 'textf2.text =" \((sender.selectedSegmentIndex + 1)* 5)を書くコードを最適化することができます。 " – vadian