简体   繁体   中英

How to Load data into textfield when pickerview is launched

I created a custom pickerview as a keyboard with a done button and everything, but I'm having a bit of trouble figuring out how to load the data immediately from the start, I did it in my datepicker, but now I'm trying to figure out how to do it in a normal picker keyboard that I custom made.

Here is my code:

import UIKit
import CoreData

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, NSFetchedResultsControllerDelegate {
@IBOutlet weak var stateText: UITextField!
@IBOutlet weak var taxNumb: UITextField!
@IBOutlet weak var output: UILabel!


func doneButton() {

    let doneToolbar : UIToolbar = UIToolbar(frame: CGRectMake(0, 0, 320, 50))
    doneToolbar.barStyle = UIBarStyle.Default

    let flexSpace = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
    let done : UIBarButtonItem = UIBarButtonItem(title: "Done", style: .Done, target: self, action: ("doneButtonAction"))

    var items = [UIBarButtonItem]()
    items.append(flexSpace)
    items.append(done)

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.stateText.inputAccessoryView = doneToolbar
    self.taxNumb.inputAccessoryView = doneToolbar

}

func doneButtonAction() {

    self.stateText.resignFirstResponder()
    self.taxNumb.resignFirstResponder()

}

let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let tax : Tax? = nil

var stateArray = [
    "AK - Alaska",
    "AL - Alabama",
    "AR - Arkansas",
    "AZ - Arizona",
    "CA - California",
]

func statePickerKey() {
    let statePickerView = UIPickerView()
    statePickerView.dataSource = self
    statePickerView.delegate = self
    stateText.inputView = statePickerView
}


override func viewDidLoad() {
    super.viewDidLoad()

    statePickerKey()
    doneButton()


}

override func viewDidAppear(animated: Bool) {

    statePickerKey()

}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return stateArray.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return stateArray[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    return stateText.text = stateArray[row] as String
}

@IBAction func printTapped(sender: AnyObject) {

    let entityDescription = NSEntityDescription.entityForName("Tax", inManagedObjectContext: moc)
    let taxes = Tax(entity: entityDescription!, insertIntoManagedObjectContext: moc)

    taxes.state = stateText.text

    if stateText.text == "AK - Alaska" {
        taxes.alaska = Double(taxNumb.text!)
        output.text = taxes.alaska?.stringValue
    } else if stateText.text == "AL - Alabama" {
        taxes.alabama = Double(taxNumb.text!)
        self.output.text = taxes.alabama?.stringValue
    } else if stateText.text == "AR - Arkansas" {
        taxes.arkansas = Double(taxNumb.text!)
        output.text = taxes.arkansas?.stringValue
    } else if stateText.text == "AZ - Arizona" {
        taxes.arizona = Double(taxNumb.text!)
        output.text = taxes.arizona?.stringValue
    } else if stateText.text == "CA - California" {
        taxes.california = Double(taxNumb.text!)
        output.text = taxes.california?.stringValue
    }
}


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


}

您创建datepicker,之后设置textfield.text = datePickerView.date

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM