Ich benutze zwei textField, die vom Typ numPad Tastatur ist. Ich habe Next
Schaltfläche für die erste TextField und Done
Schaltfläche für die zweite TextField in der NumPad Tastatur hinzugefügt. Verwenden Sie den folgenden Code.Wie bekomme ich die textField-ID in 'doneButtonAction' -Methode, während ich mehrere Textfelder mit numPad-Tastatur in swift verwende?
import UIKit
class SecurityPinSettingsVC: UIViewController, UITextFieldDelegate
{
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
override func viewDidLoad()
{
super.viewDidLoad()
self.textField1.delegate = self
self.textField2.delegate = self
self.textField1.textAlignment = NSTextAlignment.center
self.textField2.textAlignment = NSTextAlignment.center
addNextButtonOnKeyboard()
addDoneButtonOnKeyboard()
}
func addNextButtonOnKeyboard()
{
let nextToolbar: UIToolbar = UIToolbar(frame: CGRect(x: 0,y: 0, width: 320, height: 50))
nextToolbar.barStyle = UIBarStyle.default
let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let next: UIBarButtonItem = UIBarButtonItem(title: "Next", style: UIBarButtonItemStyle.done, target: self, action: #selector(ViewController.doneButtonAction))
var items = [UIBarButtonItem]()
items.append(flexSpace)
items.append(next)
nextToolbar.items = items
nextToolbar.sizeToFit()
self.textField1.inputAccessoryView = nextToolbar
}
func addDoneButtonOnKeyboard()
{
let doneToolbar: UIToolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: 320, height: 50))
doneToolbar.barStyle = UIBarStyle.default
let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let ddone: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.done, target: self, action: #selector(ViewController.doneButtonAction))
var items = [UIBarButtonItem]()
items.append(flexSpace)
items.append(ddone)
doneToolbar.items = items
doneToolbar.sizeToFit()
self.textField2.inputAccessoryView = doneToolbar
}
func doneButtonAction()
{
//self.textField2.becomeFirstResponder()
//self.textField2.resignFirstResponder()
}
}
Beide Schaltflächen wurden erfolgreich hinzugefügt. Das Problem ist, ich konnte keine separaten Aktionsmethoden für Next
Schaltfläche und Done
Schaltfläche erstellen. Es akzeptiert nur doneButtonAction
Methode für beide Tasten, die ich erstellt und in früheren ViewControllern verwendet habe. Also, wie bekomme ich die TextField ID in der Methode, um zu wissen, auf welche Schaltfläche geklickt wird. Klicken Sie also auf Next
Schaltfläche Ich möchte TextField2 zu Ersthelfer werden, und durch Klicken auf Done
Schaltfläche möchte ich TextField2 First Responder zurücktreten.
Wie in normalen TextField, textFieldShouldReturn
Methode wird diesen Job leicht tun, wo das TextField-Objekt an diese Funktion als Argument übergeben wird. Wie können wir das textField-Objekt an die doneButtonAction
-Methode übergeben?
Ich bin mit Xcode 8.2, Swift 3.0
vielen Dank im Voraus.
diese Bibliothek ausprobiert worden ist, wirklich nützlich, nicht alles codieren müssen -> pod ‚IQKeyboardManager‘ –
Ist es möglich, in Ihrem Fall 'sender' hinzufügen zur 'doneButtonAction'? – kelin