所以我有一個UIAlertController,有2個文本框,然後我想監視每當這些文本框編輯,看看他們是否符合一定的標準。如何使用#selector函數傳遞變量?以及傳遞給textField:UITextField的內容?
在這種情況下,只要兩個文本字段的輸入都短於要傳遞給該函數的數字,我希望我的警報按鈕處於非活動狀態。
所以我加入這個目標到兩個文本框:
textField.addTarget(自我,動作:#selector(self.handleTextFieldEdit),用於:.editingChanged)
內handleTextFieldEdit我有這樣的:
func handleTextFieldEdit(_ textField: UITextField, number: Int)
{
let number = number
let alertController:UIAlertController = self.presentedViewController as! UIAlertController;
let textField: UITextField = alertController.textFields![0]
let confirmField: UITextField = alertController.textFields![1]
let addAction: UIAlertAction = alertController.actions[0];
if ((textField.text?.characters.count)! > number && (confirmField.text?.characters.count)! > number)
{
addAction.isEnabled = true
}
else if ((textField.text?.characters.count)! <= number || (confirmField.text?.characters.count)! <= number)
{
addAction.isEnabled = false
}
}
現在我的第一個問題是我似乎無法通過#selector func傳遞任何變量。
我的第二個問題是,我不知道該怎麼傳遞給_文本框:的UITextField
我曾經嘗試都的UITextField和文本框(這是我宣佈我的UITextFields到)。
出現的錯誤是:無法將類型'UITextField'.Type的值轉換爲期望的參數類型'UITextField'。
編輯:我所有的代碼工作,只要我不通過一個變量與函數btw。問題是我希望每當我調用函數時都改變最小值。
非常感謝您的詳細解答! – Elhoej