如果我有两个自定义UITextField子类,例如
Class AlphaField: UITextField {
self.keyboardType = UIKeyboardType.alphabet
}
Class NumberField: UITextField {
self.keyboardType = UIKeyboardType.numberPad
}
然后我可以根据viewDidLoad中的语句将其中一种类型分配给UITextField吗?例如:
@IBOutlet weak var someTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
if someBool {
someTextField = AlphaField
} else {
someTextField = NumberField
}
}
我上面应该添加的只是一个例子。我有理由使用子类而不仅仅是更改UIKeyboardType。
答案 0 :(得分:2)
当然,那会有效。当然,您需要正确初始化它们:
@FXML
private ComboBox<String> bulanComboBox
public ObservableList<String> monthsList= FXCollections.observableArrayList(
"Januari",
"Febuari",
"Maret",
"Mei",
"Juni",
"Juli",
"Agustust",
"September",
"Oktober",
"November",
"Desember"
);
@Override
public void initialize(URL url, ResourceBundle rb) {
bulanComboBox.setItems(monthsList);
}
这可行,因为if someBool {
someTextField = AlphaField(frame: someRect)
} else {
someTextField = NumberField(frame: someRect)
}
self.view.addSubview(someTextField)
是someTextField
,可以指向UITextField
的任何子类。
请注意,由于您是以编程方式创建文本字段,因此没有理由将UITextField
作为插座。