Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 为UIPickerView创建“完成”按钮_Xcode_Swift_Uipickerview_Toolbar_Uitoolbar - Fatal编程技术网

Xcode 为UIPickerView创建“完成”按钮

Xcode 为UIPickerView创建“完成”按钮,xcode,swift,uipickerview,toolbar,uitoolbar,Xcode,Swift,Uipickerview,Toolbar,Uitoolbar,我目前正在尝试为UIPickerView创建一个“完成”按钮 我相信我已经在代码中添加了一个done按钮来显示,但是一个done按钮不会在模拟器中显示 这是我的密码: import UIKit class ViewController: UIViewController, UIPickerViewDelegate, UITextFieldDelegate, UIPickerViewDataSource { @IBOutlet weak var genderTextField: UIT

我目前正在尝试为UIPickerView创建一个“完成”按钮

我相信我已经在代码中添加了一个done按钮来显示,但是一个done按钮不会在模拟器中显示

这是我的密码:

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate, UITextFieldDelegate, UIPickerViewDataSource {

    @IBOutlet weak var genderTextField: UITextField!
    @IBOutlet weak var getGender: UIPickerView!

    @IBOutlet weak var preferenceTextField: UITextField!
    @IBOutlet weak var getPreference: UIPickerView!

    let gender = ["", "Male", "Female"]
    let preference = ["", "Male", "Female", "Both"]

    override func viewDidLoad() {
        super.viewDidLoad()

        var theWidth = view.frame.size.width
        var elWidth = theWidth - 50

        // Adds title text field to the top
        var titleLabel: UILabel = UILabel()
        titleLabel.frame = CGRectMake(25, 40, elWidth, 40)
        titleLabel.textColor = UIColor(red: 1.0, green: (203.0/255.0), blue: (38.0/255.0), alpha: 1.0)
        titleLabel.font = UIFont(name: "Apple SD Gothic Neo", size: 28.0)
        titleLabel.textAlignment = NSTextAlignment.Center
        titleLabel.text = "Set up your profile"
        self.view.addSubview(titleLabel)

        getGender.hidden = true;
        genderTextField.placeholder = "Gender"
        genderTextField.delegate = self
        getGender.delegate = self
        getGender.frame = CGRectMake(0,view.frame.size.height-216, view.frame.size.width, 216)
        getPreference.hidden = true;
        preferenceTextField.placeholder = "Gender preference"
        preferenceTextField.delegate = self
        getPreference.delegate = self
        getPreference.frame = CGRectMake(0,view.frame.size.height-216, view.frame.size.width, 216)

        var toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
        toolBar.sizeToFit()

        var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker")
        var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "canclePicker")

        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.userInteractionEnabled = true

        genderTextField.inputView = getGender
        genderTextField.inputAccessoryView = toolBar

        preferenceTextField.inputView = getPreference
        preferenceTextField.inputAccessoryView = toolBar


    }


    @IBAction func genderTextClick(sender: UITextField) {

        getGender.showsSelectionIndicator = true

        // Create toolbar
        var toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
        toolBar.sizeToFit()

        // Create buttons
        var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneGenderPicker")
        var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelGenderPicker")

        // Assign buttons to toolbar
        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.userInteractionEnabled = true

        // Add pickerview and toolbar to textfield
        genderTextField.inputView = getGender
        genderTextField.inputAccessoryView = toolBar

        sender.inputView = getGender

    }


    @IBAction func preferenceTextClick(sender: UITextField) {



        getPreference.showsSelectionIndicator = true

        // Create toolbar
        var toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
        toolBar.sizeToFit()

        // Create buttons
        var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePreferencePicker")
        var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelPreferencePicker")

        // Assign buttons to toolbar
        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.userInteractionEnabled = true

        // Add pickerview and toolbar to textfield
        preferenceTextField.inputView = getPreference
        preferenceTextField.inputAccessoryView = toolBar

        sender.inputView = getPreference

    }


    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

        getGender.tag = 0
        getPreference.tag = 1

        if pickerView.tag == 0 {
            return gender.count
        } else if pickerView.tag == 1 {
            return preference.count
        }
        return 1
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

        getGender.tag = 0
        getPreference.tag = 1

        if pickerView.tag == 0 {
            return gender[row]
        } else if pickerView.tag == 1 {
            return preference[row]
        }
        return ""
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)  {

        getGender.tag = 0
        getPreference.tag = 1

        if pickerView.tag == 0 {
            genderTextField.text = gender[row]
//            getGender.hidden = true
        } else if pickerView.tag == 1 {
            preferenceTextField.text = preference[row]
//            getPreference.hidden = true
        }
    }

    func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
        if (textField == self.genderTextField) {
            getGender.hidden = false
        } else if (textField == self.preferenceTextField) {
            getPreference.hidden = false
        }
        return false
    }

    func doneGenderPicker() {
        genderTextField.resignFirstResponder()
    }
    func cancelGenderPicker() {
        genderTextField.resignFirstResponder()
    }

    func donePreferencePicker() {
        preferenceTextField.resignFirstResponder()
    }
    func cancelPreferencePicker() {
        preferenceTextField.resignFirstResponder()
    }


//    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
//        
//        getGender.hidden = true
//        getPreference.hidden = true
//    }

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

}
导入UIKit
类ViewController:UIViewController、UIPickerViewDeleteGate、UIExtFieldDelegate、UIPickerViewDataSource{
@IBEXTEXTFIELD:UITextField!
@ibvar getGender:UIPickerView!
@IBOutlet弱var首选项TextField:UITextField!
@IBVAR getPreference:UIPickerView!
让性别=[”,“男性”,“女性”]
让偏好=[“”、“男性”、“女性”、“两者”]
重写func viewDidLoad(){
super.viewDidLoad()
var theWidth=view.frame.size.width
var ELWITH=宽度-50
//将标题文本字段添加到顶部
变量titleLabel:UILabel=UILabel()
titleLabel.frame=CGRectMake(25,40,elWidth,40)
titleLabel.textColor=UIColor(红色:1.0,绿色:(203.0/255.0),蓝色:(38.0/255.0),alpha:1.0)
titleLabel.font=UIFont(名称:“苹果SD哥特式Neo”,大小:28.0)
titleLabel.textAlignment=NSTextAlignment.Center
titleLabel.text=“设置您的个人资料”
self.view.addSubview(标题标签)
getGender.hidden=true;
genderTextField.placeholder=“性别”
genderTextField.delegate=self
getGender.delegate=self
getGender.frame=CGRectMake(0,view.frame.size.height-216,view.frame.size.width,216)
getPreference.hidden=true;
preferenceTextField.placeholder=“性别偏好”
preferenceTextField.delegate=self
getPreference.delegate=self
getPreference.frame=CGRectMake(0,view.frame.size.height-216,view.frame.size.width,216)
var toolBar=UIToolbar()
toolBar.barStyle=UIBarStyle.Default
toolBar.transparent=true
toolBar.tintColor=UIColor(红色:76/255,绿色:217/255,蓝色:100/255,alpha:1)
toolBar.sizeToFit()
var doneButton=uibarbuttonim(标题:“完成”,风格:uibarbuttonimstyle.Plain,目标:自我,行动:“donePicker”)
var spaceButton=UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.FlexibleSpace,目标:nil,操作:nil)
var cancelButton=uibarbuttonite(标题:“取消”,样式:uibarbuttonimstyle.Plain,目标:self,动作:“canclePicker”)
工具栏.setItems([cancelButton,spaceButton,doneButton],动画:false)
toolBar.userInteractionEnabled=true
genderTextField.inputView=getGender
genderTextField.inputAccessoryView=工具栏
preferenceTextField.inputView=getPreference
preferenceTextField.inputAccessoryView=工具栏
}
@iAction func genderTextClick(发件人:UITextField){
getGender.showsSelectIndicator=true
//创建工具栏
var toolBar=UIToolbar()
toolBar.barStyle=UIBarStyle.Default
toolBar.transparent=true
toolBar.tintColor=UIColor(红色:76/255,绿色:217/255,蓝色:100/255,alpha:1)
toolBar.sizeToFit()
//创建按钮
var doneButton=uibarbuttonite(标题:“完成”,样式:uibarbuttonimstyle.Plain,目标:self,动作:“doneGenderPicker”)
var spaceButton=UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.FlexibleSpace,目标:nil,操作:nil)
var cancelButton=UIBarButtonItem(标题:“取消”,样式:UIBarButtonItemStyle.Plain,目标:self,动作:“cancelGenderPicker”)
//为工具栏指定按钮
工具栏.setItems([cancelButton,spaceButton,doneButton],动画:false)
toolBar.userInteractionEnabled=true
//将pickerview和工具栏添加到textfield
genderTextField.inputView=getGender
genderTextField.inputAccessoryView=工具栏
sender.inputView=getGender
}
@iAction func首选项文本单击(发件人:UITextField){
getPreference.showsSelectIndicator=true
//创建工具栏
var toolBar=UIToolbar()
toolBar.barStyle=UIBarStyle.Default
toolBar.transparent=true
toolBar.tintColor=UIColor(红色:76/255,绿色:217/255,蓝色:100/255,alpha:1)
toolBar.sizeToFit()
//创建按钮
var doneButton=uibarbuttonite(标题:“完成”,样式:uibarbuttonimstyle.Plain,目标:self,动作:“donePreferencePicker”)
var spaceButton=UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.FlexibleSpace,目标:nil,操作:nil)
var cancelButton=uiBarButtonim(标题:“取消”,样式:uiBarButtonimStyle.Plain,目标:self,操作:“cancelPreferencePicker”)
//为工具栏指定按钮
工具栏.setItems([cancelButton,spaceButton,doneButton],动画:false)
toolBar.userInteractionEnabled=true
//将pickerview和工具栏添加到textfield
preferenceTextField.inputView=getPreference
preferenceTextField.inputAccessoryView=工具栏
sender.inputView=getPreference
}
func numberOfComponentsInPickerView(pickerView:UIPickerView)->Int{
返回1
}
func pickerView(pickerView:UIPickerView,numberOfRowsInComponent:Int)->Int{
getGender.tag=0
getPreference.tag=1
如果pickerView.tag==0{
返回性别。计数
}如果pickerView.tag==1,则为else{
返回首选项。计数
}
返回1
}
func pickerView(pickerView:UIPickerView,titleForRow行:Int,forComponent组件:Int)->字符串{
getGender.tag=0
getPreference.tag=1
如果pickerView.tag==0{
返回性别[行]
}如果pickerView.tag==1,则为else{
返回首选项[行]
}
返回“”
}
func pickerView(pickerView:UIPickerView,didSelectRow行:Int,不完整组件:Int){