2016-09-29 48 views
1

?例如類似:變化類型的編程

@IBOutlet weak var someTextField: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if someBool { 
     someTextField = AlphaField 
    } else { 
     someTextField = NumberField 
    } 
} 

我應該在上面添加僅僅是一個例子。我有一個使用子類的理由,而不是僅僅改變UIKeyboardType。

+0

使用'extension'代替 – adnbsr

回答

2

當然,這將工作。當然,你需要正確初始化它們:

if someBool { 
    someTextField = AlphaField(frame: someRect) 
} else { 
    someTextField = NumberField(frame: someRect) 
} 
self.view.addSubview(someTextField) 

這工作,因爲someTextFieldUITextField並且可以指向的UITextField任何子類。

請注意,由於您以編程方式創建的文本字段,沒有理由讓someTextField的出口。

+0

感謝@maddy。這很有用。 – LateNate