以下:textField1
が空である限り、textField2
は無効です。後者が空でない場合、以下のように、我々は、
/* ViewController.swift */
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// text field delegates
textField1.delegate = self
textField2.delegate = self
// set return key styles
textField1.returnKeyType = UIReturnKeyType.Next
textField2.returnKeyType = UIReturnKeyType.Go
// only enable textField2 if textField1 is non-empty
textField2.enabled = false
// only enable 'go' key of textField2 if the field itself is non-empty
textField2.enablesReturnKeyAutomatically = true
}
// UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
if (textField1.text?.isEmpty ?? true) {
textField2.enabled = false
textField.resignFirstResponder()
}
else if textField == textField1 {
textField2.enabled = true
textField2.becomeFirstResponder()
}
else {
textField.resignFirstResponder()
}
return true
}
}
ランをtextField2
を有効にしても、textField2
は(.enablesReturnKeyAutomatically
プロパティを経由して)非空の場合にのみGo
ボタンを有効にします。

方法'textField1':次のレスポンダーを' textField2? 'に設定しましたか(以前は "Return"ではなく "Next"を持っています)。単に 'textField1.returnKeyType = UIReturnKeyType.Next'ですか? – dfri
ええ、これは難しいと思います(例: 'textField1'は空ですが' textField2'はありません: 'Go'ボタンが有効になります)。戻るボタンを有効/無効に設定するための文書化されていないobj-cハックを見たことがありますが、それらを迅速に適応させることはできませんでした。また、文書化されていないハッキングを避けることも望みます。 「このスレッド」を参照してください。 – dfri
これは私の最終的な試行です、私は今ベッドに行く必要があります。この最終版では、最初のテキストビューが空である限り、2番目のテキストビューが無効になります。その後、空である限り、「Go」ボタンを2回押してテキストビューを表示します。 – dfri