在 ViewdidLoad 之外添加 UITextField
Adding UITextField outside ViewdidLoad
我似乎无法弄清楚如何在 viewdidload 方法之外添加 TextField
。
我有一个 function
检查一个选择(在 UIPickerView
中)是否是欧洲,如果是,它需要添加一个新的 TextField
,如果不是(并且 TextField
存在)它应该删除它。
这是我的代码:
func updateLabel(){
switch country{
case "Internationaal":
tailleSize = taille.international
case "Europe":
var myTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40.00));
myTextField.backgroundColor = UIColor.grayColor();
myTextField.placeholder=" Enter here";
//myTextField.text = " Enter here";
myTextField.borderStyle = UITextBorderStyle.Line;
myTextField.secureTextEntry=true;
tailleSize = String(taille.europe)
default:
tailleSize = String(taille.europe)
}
}
updateLabel
是 运行 每当用户按下 button
或从 UIPickerView
中选择一个项目时。
我该怎么做?
我试图在变量中获取主要 viewcontroller 并将其添加到那里,但失败了。
我认为单独定义您的 UITextField 将其添加到 viewDidLoad
上的视图 hidden
中会更有意义,这将使 switch 语句更清晰并且您的文本字段可以重复使用而不是每次都重新创建。
ViewController
override func viewDidLoad() {
super.viewDidLoad()
addTextFieldToView()
}
var myTextField:UITextField!
func addTextFieldToView() {
myTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40.00))
myTextField.backgroundColor = UIColor.grayColor()
myTextField.placeholder = "Enter here"
myTextField.borderStyle = UITextBorderStyle.Line
myTextField.secureTextEntry = true
myTextField.hidden = true
self.view.addSubview(myTextField)
}
func updateLabel(){
switch country{
case "International":
tailleSize = taille.international
myTextField.hidden = true
case "Europe":
tailleSize = String(taille.europe)
myTextField.hidden = false
default:
tailleSize = String(taille.europe)
myTextField.hidden = true
}
}
您还可以利用 enabled
属性 来启用和禁用文本字段,而不是使其不可见。 myTextField.enabled = false
以 "normal" 的方式将 TextField 添加到故事板中您想要的位置,并将其与您的代码连接。
override func viewDidLoad() {
super.viewDidLoad()
myTextField.hidden = true; //TextField disappears
//You also can set the textField in Interface Builder to hidden.
}
func updateLabel(){
switch country{
case "Internationaal":
tailleSize = taille.international
case "Europe":
myTextField.hidden = false; //TextField appears
myTextField.backgroundColor = UIColor.grayColor();
myTextField.placeholder=" Enter here";
//myTextField.text = " Enter here";
myTextField.borderStyle = UITextBorderStyle.Line;
myTextField.secureTextEntry=true;
tailleSize = String(taille.europe)
default:
tailleSize = String(taille.europe)
}
}
我似乎无法弄清楚如何在 viewdidload 方法之外添加 TextField
。
我有一个 function
检查一个选择(在 UIPickerView
中)是否是欧洲,如果是,它需要添加一个新的 TextField
,如果不是(并且 TextField
存在)它应该删除它。
这是我的代码:
func updateLabel(){
switch country{
case "Internationaal":
tailleSize = taille.international
case "Europe":
var myTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40.00));
myTextField.backgroundColor = UIColor.grayColor();
myTextField.placeholder=" Enter here";
//myTextField.text = " Enter here";
myTextField.borderStyle = UITextBorderStyle.Line;
myTextField.secureTextEntry=true;
tailleSize = String(taille.europe)
default:
tailleSize = String(taille.europe)
}
}
updateLabel
是 运行 每当用户按下 button
或从 UIPickerView
中选择一个项目时。
我该怎么做?
我试图在变量中获取主要 viewcontroller 并将其添加到那里,但失败了。
我认为单独定义您的 UITextField 将其添加到 viewDidLoad
上的视图 hidden
中会更有意义,这将使 switch 语句更清晰并且您的文本字段可以重复使用而不是每次都重新创建。
ViewController
override func viewDidLoad() {
super.viewDidLoad()
addTextFieldToView()
}
var myTextField:UITextField!
func addTextFieldToView() {
myTextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40.00))
myTextField.backgroundColor = UIColor.grayColor()
myTextField.placeholder = "Enter here"
myTextField.borderStyle = UITextBorderStyle.Line
myTextField.secureTextEntry = true
myTextField.hidden = true
self.view.addSubview(myTextField)
}
func updateLabel(){
switch country{
case "International":
tailleSize = taille.international
myTextField.hidden = true
case "Europe":
tailleSize = String(taille.europe)
myTextField.hidden = false
default:
tailleSize = String(taille.europe)
myTextField.hidden = true
}
}
您还可以利用 enabled
属性 来启用和禁用文本字段,而不是使其不可见。 myTextField.enabled = false
以 "normal" 的方式将 TextField 添加到故事板中您想要的位置,并将其与您的代码连接。
override func viewDidLoad() {
super.viewDidLoad()
myTextField.hidden = true; //TextField disappears
//You also can set the textField in Interface Builder to hidden.
}
func updateLabel(){
switch country{
case "Internationaal":
tailleSize = taille.international
case "Europe":
myTextField.hidden = false; //TextField appears
myTextField.backgroundColor = UIColor.grayColor();
myTextField.placeholder=" Enter here";
//myTextField.text = " Enter here";
myTextField.borderStyle = UITextBorderStyle.Line;
myTextField.secureTextEntry=true;
tailleSize = String(taille.europe)
default:
tailleSize = String(taille.europe)
}
}