Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UITextField Swift中的ios – resignFirstResponder大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在工具栏上单击完成按钮后,我希望UIPickerView被关闭(滑出视图).我将uIPickerView链接到UITextField的inputView,并将uIToolbar设置为UIPickerView的inputAccessoryView.但是,我的函数调用resignFirstResponder不会将uIPicker从视图中滑出.任何帮助,谢谢,提前谢谢! import UIKit cl
在工具栏上单击完成按钮后,我希望UIPickerView被关闭(滑出视图).我将uIPickerView链接到UITextField的inputView,并将uIToolbar设置为UIPickerView的inputAccessoryView.但是,我的函数调用resignFirstResponder不会将uIPicker从视图中滑出.任何帮助,谢谢,提前谢谢!
import UIKit

class ViewController: UIViewController,UIPickerViewDatasource,UIPickerViewDelegate {
    // Do any additional setup after loading the view,typically from a nib.

    //initialization constants
    let pickerView = UIPickerView()
    let textField = UITextField()
    let pickerData = ["1","2","three"]


    override func viewDidLoad() {
        //pickerview tool bar
        let toolbar = UIToolbar(frame: CGRectMake(0,320,44))
        var items = [AnyObject]()
        //making done button
        let doneButton = UIBarButtonItem(title: "Done",style: .Plain,target: self,action: SELEctor(donePressed()))
        items.append(doneButton)
        toolbar.barStyle = UIBarStyle.black
        toolbar.setItems(items,animated: truE)


        //creaTing textfields with a pickerview
        pickerView.delegate = self
        pickerView.datasource = self
        pickerView.frame = CGRectMake(0,500,300)
        textField.inputAccessoryView = toolbar
        textField.inputView = pickerView
        textField.frame = CGRectMake(200,55,100,35)
    textField.BACkgroundColor = UIColor.blueColor()

    //adding objs to viewController
    self.view.addSubview(textField)
}

func donePressed() {
    resignFirstResponder()
}





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



}

//MARK: Data sources UIPickerView
extension ViewController: UIPickerViewDatasource {
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(pickerView: UIPickerView!,numberOfRowsInComponent component: int) -> Int {
        return pickerData.count
    }
}

//MARK: Delegates UIPickerView
extension ViewController: UIPickerViewDelegate {
    // several optional methods:




func pickerView(pickerView: UIPickerView,titleForRow row: Int,forComponent component: int) -> String! {
    return pickerData[row]
}

func pickerView(pickerView: UIPickerView!,didSELEctRow row: Int,inComponent component: int) {
    textField.text = pickerData[row]
}
}
有两个问题:

>对于donePressed的选择器声明不正确.它应该是:

let doneButton = UIBarButtonItem(title: "Done",action: "donePressed")

>您需要在textField上调用resignFirstResponder():

func donePressed() {
    textField.resignFirstResponder()
}

如果您有多个textField,并且您不想在resignFirstResponder调用中对textField进行硬编码,则可以执行以下操作:

>使您的ViewController成为UITextFielddeletate:

class ViewController: UIViewController,UIPickerViewDelegate,UITextFieldDelegate {

>在UITextField上设置delegate属性

textField.delegate = self

>将一个属性添加到ViewController以跟踪活动的UITextField:

var activeTextField:UITextField?

>实现textFieldDidBeginEdiTing并存储活动的UITextField:

func textFieldDidBeginEdiTing(textField: UITextField) { // became first responder
    activeTextField = textField
}

>在donePressed中,调用activeTextField上的resignFirstResponder:

func donePressed() {
    activeTextField?.resignFirstResponder()
}

大佬总结

以上是大佬教程为你收集整理的UITextField Swift中的ios – resignFirstResponder全部内容,希望文章能够帮你解决UITextField Swift中的ios – resignFirstResponder所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。