2017-06-27 16 views
-1

日付ピッカーを使用して日付を格納するテキストフィールドがあります。私は、日付が選択されるまで隠しておきたいテキストビューを持っています。これには次のコードがあります。".isEmpty"が動作しないelseステートメントがある場合(swift3)

 import UIKit 
class ViewController: UIViewController { 
@IBOutlet var label: UILabel! 
@IBOutlet var thetextField: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    label.isHidden = thetextField.text!.isEmpty 
    } 
func textFieldDidEndEditing(_ textField: UITextField) { 
    label.isHidden = textField.text!.isEmpty 
}} 
+0

次のようになりますtextField

func textFieldDidEndEditing(_ textField: UITextField) { if textField.text.isEmpty { enterName.isHidden = true } else { enterName.isHidden = false } } 

EDIT

コードのdelegate方法でこのプロパティをチェックすることです。 'text'プロパティが変更されたときには常にコードを実行する必要があります。 – vadian

+0

viewDidAppearで同じことを試みましたが、うまくいきませんでした。 –

+0

'dptext'のテキストプロパティが' viewDidAppear'で変更されますか?確かにそうではありません。もう一度、 'dptext.text = .... 'が出現するたびにコードを実行する必要があります。 – vadian

答えて

2

これは、isEmptyプロパティを1回だけチェックしているためです。あなたが代わりに必要なのは、コードがviewDidLoad` `に一度実行されます。この

import UIKit 
class ViewController: UIViewController, UITextFieldDelegate { 
    @IBOutlet var label: UILabel! 
    @IBOutlet var thetextField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     label.isHidden = thetextField.text!.isEmpty 
     thetextField.delegate = self 
    } 

    func textFieldDidEndEditing(_ textField: UITextField) { 
     label.isHidden = textField.text!.isEmpty 
    } 
} 
+0

viewdidloadでその関数を呼び出す方法がわかりません。私はあなたの提案された答えで私の質問を編集しました。しかし、テキストが入力されたときにラベルが読み込まれても、そのラベルは隠されています。 –

+0

'代理人 'とその使い方を読んでおく必要があります。彼らは長期的にあなたを多く助けます。デリゲートを理解したら、AppleのWebサイトで 'UITextField'デリゲートを調べることができます。ここにリンクがあります:https://developer.apple.com/documentation/uikit/uitextfielddelegate – Malik

+0

コードを動作させるためには、viewdidloadに何かを置く必要がありますか? –

関連する問題