私は結果を表示するためにクリアする3つのテキストフィールド、1つのボタンでプロジェクトやラベルを持っているのXcode 8とスウィフト3スウィフト:同時に
を使用している2つのFUNCテキストフィールドを使用する方法。私のクラスインサイド
私が持っているのViewController:
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!
が、私は最大3桁にも、私は両方のもののためにコードを取得するために管理し、使用している場合、彼らが働く360の値に私のテキストフィールドの入力を制限したいです一度に1つだけですが、どちらもfuncのテキストフィールドで始まるので、両方とも一緒に動作させることはできません。別のクラスでやる必要がありますか? これは基本的な質問ですが、学習プロセスの一部です。彼らはクラスのViewControllerの内側の両方である
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;
}
}
:
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
}
と:
これらは私が結合したい2つのコードです。
ありがとうございました!
このシナリオでは、どの「テキストフィールド」がどちらであるかを特定する必要はありません。これらの関数内のすべての変数はローカルです。これらは 'UITextFieldDelegate'の関数です。すべての 'UITextField'に対して' self'に設定していますか? – KrishnaCA