web-dev-qa-db-ja.com

テキストフィールドをクリアするには?

私はSwiftのTextFieldに関する質問があります

クリックするとTextFieldのテキストをクリアできますか

私のtextfiled.text = "0"

textfiledをクリックすると、数字の「0」が削除されます。

import UIKit
class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet var lbltext: UILabel!
    @IBOutlet var scrolview1: UIScrollView!
    @IBOutlet var fi: UITextField!
    @IBOutlet var scrolviewus: UIScrollView!
    @IBOutlet var counterLabel: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        fi.text = "0"
       }

       override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
       }

       @IBAction func button(sender: AnyObject) {
        lbltext.numberOfLines = 0
        lbltext.text! = lbltext.text! + "\n" + fi.text! + "\n" + "---  "
    }
 }
13
X.BOZO

この方法を使用して、

テキストフィールドを手動でクリアする場合は、次のコードを使用します。

textField.text = ""

編集を開始するときにテキストフィールドを空にする場合は、以下のデリゲートメソッドを使用します。

func textFieldDidBeginEditing(textField: UITextField) {
    textField.text = ""
}

複数のテキストフィールドを使用している場合は、次の方法を使用します。

func textFieldDidBeginEditing(textField: UITextField) { 
    if (textField == oneTextField) {
       textField.text = ""
    } 
    else if (textField == anotherTextField) {
       // Perform any other operation
    } 
}
29
Iyyappan Ravi

単にtextFieldDidBeginEditingメソッドを使用して、フォーカスの変更を処理し、テキストをクリアします。

func textFieldDidBeginEditing(textField: UITextField) {
    textField.text = ""
}
5
brimstone
func textFieldDidBeginEditing(textField: UITextField)
{
    if fi.text == "0"
    {
        fi.text = ""
    }
}
3
Jayesh Miruliya

SwiftでTextFieldを簡単にクリアできます

emailTextField.text?.removeAll()
passwordTextField.text?.removeAll()
confirmPasswordTextField.text?.removeAll()
2
Apps Freax
func textFieldDidBeginEditing(textField: UITextField) {
        fi.text = ""
    }

func textFieldDidEndEdition(textField: UITextField) {

     if fi.text isEqualToString:@"" {
          fi.text = @""
     }

}
2
Gaurav Patel

探しているものに応じて、この問題を解決できる方法がいくつかあります。 1つ目は、テキストを0に設定する代わりにプレースホルダーを使用することです。プレースホルダーは、ユーザーが入力を開始すると消え、何も入力しないと再表示されます。

fi.placeholder = "0"

0を単なるプレースホルダーではなく値にしたい場合は、テキストフィールドの編集/入力/戻り値などを追跡する多くの組み込みメソッドがあります。ただし、これにはUITextFieldDelegateの実装が必要です。これは既に実行済みのようです。

var isFirstTime = true

override viewDidLoad() {
     super.viewDidLoad()
     fi.delegate = self
}

func textViewDidBeginEditing(textView: UITextView) {
    isFirstTime = false
    if fi.text == "0" {
        fi.text = ""
    }
}

func textViewDidEndEditing(textView: UITextView) {
    if fi.text.isEmpty {
        fi.text = "0"
        isFirstTime = true
    }
}

ユーザーが選択した場合にユーザーが0を入力できるように、varは初めて存在します。ユーザーが0を入力できない場合は、削除することができます。

2
treyhakanson