Ich verwende Xcode 8 und Swift 3.Swift: Wie bei gleichzeitig zwei func Textfeld verwenden
Ich habe ein Projekt mit drei Textfelder, 1-Taste zu löschen und Etikett Ergebnis anzuzeigen.
Innerhalb meiner Klasse Viewcontroller ich habe:
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet weak var input1: UITextField!
@IBOutlet weak var input2: UITextField!
@IBOutlet weak var input3: UITextField!
@IBOutlet weak var lblResult: UILabel!
@IBOutlet weak var clearButton: UIButton!
Ich möchte meine Textfelder Eingänge bis max 3 Stellen beschränken, sondern auch auf einen Wert von 360. Ich schaffe Code für beide Dinge zu bekommen und sie funktionieren, wenn verwendet, nur eins nach dem anderen, aber weil beide mit func textfield beginnen, kann ich sie nicht beide zusammen arbeiten lassen. Muss ich es in einer anderen Klasse machen? Ich weiß, das ist eine grundlegende Frage, aber ihr Teil des Lernprozesses.
Dies sind die beiden Codes ich kombinieren möchten:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool
{
let maxLength = 3
let currentString: NSString = textField.text! as NSString
let newString: NSString = currentString.replacingCharacters(in: range, with: string) as NSString
return newString.length <= maxLength
}
und:
func textField(_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool
{
var startString = ""
if (textField.text != nil)
{
startString += textField.text!
}
startString += string
let limitNumber = Int(startString)
if limitNumber! > 360
{
return false
}
else
{
return true;
}
}
Sie sind beide in der Klasse Viewcontroller.
Danke für die Hilfe!
Für dieses Szenario, ich glaube nicht, dass Sie identifizieren müssen, welche 'Textfeld 'ist welche. Alle Variablen innerhalb dieser Funktionen sind lokal. Dies sind Funktionen von 'UITextFieldDelegate'. Setzen Sie sie für alle UITextFields auf "self"? – KrishnaCA