我希望用户在按下键盘上的“完成”按钮时登录(SWIFT)

我希望用户在按下键盘上的“完成”按钮时登录(SWIFT),swift,uibutton,keyboard,uitextfield,Swift,Uibutton,Keyboard,Uitextfield,我有一个UIExtField和一个login UIbutton,我希望用户能够在Iphone键盘上按下“完成”按钮时登录 @IBOutlet weak var txtNumber: UITextField! override func viewDidLoad() { super.viewDidLoad() //--- add UIToolBar on keyboard and Done button on UIToolBar ---//

我有一个UIExtField和一个login UIbutton,我希望用户能够在Iphone键盘上按下“完成”按钮时登录

@IBOutlet weak var txtNumber: UITextField!
  override func viewDidLoad()
    {
        super.viewDidLoad()

        //--- add UIToolBar on keyboard and Done button on UIToolBar ---//
        self.addDoneButtonOnKeyboard()


    }  

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

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

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

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.txtNumber.inputAccessoryView = doneToolbar

  }

  func doneButtonAction()
  {
    self.txtNumber.resignFirstResponder()
  }
我怎样才能做到这一点

@IBOutlet weak var txtNumber: UITextField!
  override func viewDidLoad()
    {
        super.viewDidLoad()

        //--- add UIToolBar on keyboard and Done button on UIToolBar ---//
        self.addDoneButtonOnKeyboard()


    }  

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

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

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

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.txtNumber.inputAccessoryView = doneToolbar

  }

  func doneButtonAction()
  {
    self.txtNumber.resignFirstResponder()
  }

非常感谢

您需要在类上实现
UITextFieldDelegate
协议,然后使用
textFieldShouldReturn
方法定义当按下“完成”时应该发生什么。大致如下:

func textFieldShouldReturn(textField: UITextField!) -> Bool {  
    textField.resignFirstResponder()
    // Do something here
    return true
}
@IBOutlet weak var txtNumber: UITextField!
  override func viewDidLoad()
    {
        super.viewDidLoad()

        //--- add UIToolBar on keyboard and Done button on UIToolBar ---//
        self.addDoneButtonOnKeyboard()


    }  

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

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

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

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.txtNumber.inputAccessoryView = doneToolbar

  }

  func doneButtonAction()
  {
    self.txtNumber.resignFirstResponder()
  }
您还必须告诉文本字段您的类实例是它的委托:

myTextField.delegate = self
@IBOutlet weak var txtNumber: UITextField!
  override func viewDidLoad()
    {
        super.viewDidLoad()

        //--- add UIToolBar on keyboard and Done button on UIToolBar ---//
        self.addDoneButtonOnKeyboard()


    }  

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

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

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

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.txtNumber.inputAccessoryView = doneToolbar

  }

  func doneButtonAction()
  {
    self.txtNumber.resignFirstResponder()
  }

试试这个它对我有用

@IBOutlet weak var txtNumber: UITextField!
  override func viewDidLoad()
    {
        super.viewDidLoad()

        //--- add UIToolBar on keyboard and Done button on UIToolBar ---//
        self.addDoneButtonOnKeyboard()


    }  

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

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

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

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.txtNumber.inputAccessoryView = doneToolbar

  }

  func doneButtonAction()
  {
    self.txtNumber.resignFirstResponder()
  }

参见
@IBOutlet weak var txtNumber: UITextField!
  override func viewDidLoad()
    {
        super.viewDidLoad()

        //--- add UIToolBar on keyboard and Done button on UIToolBar ---//
        self.addDoneButtonOnKeyboard()


    }  

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

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

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

    doneToolbar.items = items
    doneToolbar.sizeToFit()

    self.txtNumber.inputAccessoryView = doneToolbar

  }

  func doneButtonAction()
  {
    self.txtNumber.resignFirstResponder()
  }