zac*_*con 2 cocoa-touch uitextfield ios
我有六个文本字段.其中一个字段无法由用户编辑.相反,它接收来自其他五个的输入,将其压缩成一个字符串(每个输入之间具有冒号,具有特定排列).
无论何时修改任何已启用的文本字段,第六个文本字段的内容都会更改,并且输入的顺序不会更改.所以,如果我输入1,2,3,4,5在前五文本框,第六会读1:2:3:4:5.如果我将第二个文本字段的文本从更改2为two,则第六个文本字段也将更改为1:two:3:4:5.
我已经知道如何执行此操作,创建五个全局变量,保存五个文本字段的值,然后从这些变量的连续中读取第六个.我无法弄清楚如何触发文本更改.
我试过用这个:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
}
Run Code Online (Sandbox Code Playgroud)
以及其他委托方法,但我不确定是否可行.
创建一个数组:
var myArray= [String]()
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad中执行此操作,当用户在文本字段中进行一些更改时分配操作(对所有textfield/1,2,3,4,5执行此操作):
textField1.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
textField2.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
Run Code Online (Sandbox Code Playgroud)
当用户编辑此方法时,将调用此方法:
func textFieldDidChange(textField: UITextField) {
myArray.removeAll()
if !textField1.isEmpty {
myArray.append(textField1.text)
}
if !textField2.isEmpty {
myArray.append(textField2.text)
}
if !textField3.isEmpty {
myArray.append(textField3.text)
}
if !textField4.isEmpty {
myArray.append(textField4.text)
}
if !textField5.isEmpty {
myArray.append(textField5.text)
}
textField6.text = myArray.joinWithSeparator(":")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17469 次 |
| 最近记录: |