2016-07-05 19 views
1

我使用swift在Xcode中創建了一個應用程序,並且我有一個使用UIDatePicker的文本框,但是現在當我希望它們只是一個數字鍵時,所有其他文本框都使用此日期選擇器。任何幫助深表感謝。我想成爲UIDatePicker的文本框被稱爲「StartDate」,但我有其他人需要成爲一個數字鍵盤。我仍然是Swift和XCode的初學者,但就像我說過的所有幫助都非常感謝。文本框使用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. 
} 

回答

0

嘗試這樣:

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