2016-05-07 19 views
5

tôi có câu hỏi về TextFiled trong nhanh chóngcách xóa trường văn bản?

thế nào tôi có thể văn bản rõ ràng trong TextFiled khi tôi click vào nó

textfiled.text tôi = "0"

tôi muốn khi tôi bấm vào textfiled xóa số điện thoại "0" automatica

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" + "--- " 
    } 
} 
+1

Có thể liên quan: http://stackoverflow.com/questions/28530167/objective-c-auto-erase-nstextfield-string –

+0

tôi đang sử dụng nhanh chóng –

+1

Vậy điều gì, nó giống khái niệm. –

Trả lời

12

Sử dụng phương pháp này,

Nếu bạn muốn tự xóa việc sử dụng trường văn bản mã này:

textField.text = "" 

Nếu bạn muốn các trường văn bản để trống khi bạn bắt đầu chỉnh sửa, sử dụng phương pháp đại biểu dưới đây :

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

Nếu bạn đang sử dụng nhiều lĩnh vực văn bản, sử dụng phương thức dưới đây:

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

cảm ơn bạn công việc của nó –

+1

Ok Luôn Chào mừng –

+0

gì nếu tôi có hai textfiled, 1, 2, và khi tôi bấm vào 1textfiled đầu tiên sẽ loại bỏ "0", và sau đó khi tôi nhấn vào thứ hai textfiled2 sẽ loại bỏ "0", Tôi muốn trả về giá trị của textfiled đầu tiên khi tôi nhấp vào textfiled2 hoặc bất cứ nơi nào –

1

Có một số cách để bạn có thể giải quyết vấn đề này, tùy thuộc vào những gì bạn đang tìm kiếm. Đầu tiên là sử dụng một trình giữ chỗ thay vì thiết lập các văn bản để 0. Một giữ chỗ sẽ biến mất bất cứ khi nào người dùng bắt đầu gõ và xuất hiện trở lại nếu họ gõ không có gì trong:

fi.placeholder = "0" 

nếu bạn muốn từ 0 đến là giá trị và không chỉ là một trình giữ chỗ, có rất nhiều phương thức tích hợp sẵn để theo dõi việc chỉnh sửa/nhập/trả lại/v.v. của một trường văn bản. Điều này không yêu cầu thực hiện của UITextFieldDelegate tuy nhiên, mà nó xuất hiện bạn đã làm.

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 
    } 
} 

Biến thời gian đầu tiên chỉ có sẵn để người dùng có thể nhập 0 nếu họ chọn. Nếu người dùng không thể nhập 0, thì người dùng có thể bị xóa.

+0

cảm ơn bạn rất nhiều, mã của bạn không hoạt động với tôi, tôi nghĩ chúng ta nên sử dụng func textFieldDidBeginEditing –

+0

Rất tiếc, đã đọc sai câu hỏi sẽ đúng. Về cơ bản là điều tương tự. Hãy cẩn thận với các câu trả lời khác mặc dù chúng hầu như không hoàn chỉnh; nếu bạn luôn đặt văn bản thành "" khi bắt đầu chỉnh sửa hơn bất kỳ lúc nào người dùng nhập vào trường bất cứ điều gì họ đã nhập sẽ bị xóa. – treyhakanson

+0

oh, ok cảm ơn bạn –

4

Chỉ cần sử dụng phương thức textFieldDidBeginEditing để xử lý thay đổi trọng tâm và văn bản rõ ràng.

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

cảm ơn bạn đang làm việc –

2
func textFieldDidBeginEditing(textField: UITextField) 
{ 
    if fi.text == "0" 
    { 
     fi.text = "" 
    } 
} 
+0

cảm ơn bạn nó hoạt động –

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

func textFieldDidEndEdition(textField: UITextField) { 

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

} 
Các vấn đề liên quan