4つのUITextFieldがあります。 1文字を入力した後、next
を押すことなく、次のUITextField
が自動的に有効になります。UITextField、Swift 2を使用して自動的に1文字後に次へ移動
私は
任意のアイデアスウィフト2を使用していますか?
4つのUITextFieldがあります。 1文字を入力した後、next
を押すことなく、次のUITextField
が自動的に有効になります。UITextField、Swift 2を使用して自動的に1文字後に次へ移動
私は
任意のアイデアスウィフト2を使用していますか?
次のtextFieldを選択するには、最初のResponderを割り当てる必要があります。 textFieldのデリゲートメソッドを使用して、テキストフィールドがいつアクティブになるべきかを判断できます。
最初にUITextField
ごとに異なるタグを設定します。次にUIControlEvents.editingChanged
メソッドを追加します。あなたは@IBOutlet
sおよびあなたのXIBファイルと@IBAction
Sを接続すると
、あなたのような何かのようなものを得るでしょう:currentTextFieldため
class ViewController: UIViewController {
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
@IBOutlet weak var textField3: UITextField!
@IBOutlet weak var textField4: UITextField!
@IBAction func textChanged(_ sender: UITextField) {
if sender.hasText {
switch sender {
case textField1:
textField2.becomeFirstResponder()
case textField2:
textField3.becomeFirstResponder()
case textField3:
textField4.becomeFirstResponder()
default:
sender.resignFirstResponder()
}
}
}
}
それらのすべてが同じアクションに接続されている場合は、タグを付ける必要はありません。ただ 'switch sender'と' case textField1: ' –
@LeoDabusあなたの権利をチェックしてください。私は自分の答えを更新しました。 – krlb
あなたは 'if sender.hasText'を確認することもできます –
'resignFirstResponder'、あなたが –
アクティブにしたいTextFieldに' becomeFirstResponder'を使用します拡張された構文 – Fabien