2016-07-05 11 views
1

Ich bin eine Anwendung in Xcode mit Swift erstellen und ich habe ein Textfeld, das UIDatePicker verwendet, aber jetzt alle meine anderen Textfelder verwenden diese Datumsauswahl, wenn ich will, dass sie nur ein Nummernblock sein. Jede Hilfe wird sehr geschätzt. Das Textfeld, das ich UIDatePicker sein möchte, heißt "StartDate", aber ich habe andere, die ein Nummernblock sein müssen. Ich bin immer noch ein Anfänger mit Swift und XCode, aber wie gesagt, jede Hilfe wird sehr geschätzt.Textfelder verwendet UIDatePicker

import UIKit 
import EventKit 

class ViewController: UIViewController, UITextFieldDelegate { 

weak var StartDate: UITextField! 

func textFieldDidBeginEditing(textField: UITextField) { 
    let datePicker = UIDatePicker() 
    textField.inputView = datePicker 
    datePicker.datePickerMode = UIDatePickerMode.Date 

    datePicker.addTarget(self, action: "datePickerChanged:", forControlEvents: .ValueChanged) 
} 

func datePickerChanged(sender: UIDatePicker) { 
    let formatter = NSDateFormatter() 
    formatter.dateStyle = .LongStyle 
    StartDate.text = formatter.stringFromDate(sender.date) 
} 

func textFieldShouldReturn(textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true 
} 

// Code to close keyboard that can be used throughout the app 
func closeKeyboard() { 
    self.view.endEditing(true) 
} 

// Close keyboard on touch anywhere else 
    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 
    closeKeyboard()} 


override func viewDidLoad() { 
    super.viewDidLoad() 
    StartDate.delegate = self 
} 

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

Antwort

0

versuchen, etwas wie folgt aus:

func textFieldDidBeginEditing(textField: UITextField) { 
    if textField == StartDate { 
     let datePicker = UIDatePicker() 
     textField.inputView = datePicker 
     datePicker.datePickerMode = UIDatePickerMode.Date 

     datePicker.addTarget(self, action: "datePickerChanged:", forControlEvents: .ValueChanged) 
    }else { 
     //do stuff with the rest of the textFields 
    } 
}