[英]Referencing a text field property using delegate methods
我瀏覽了一些源代碼,這些源代碼說明了文本字段的基本用法以及屬於文本字段委托協議的委托方法的實現。 現在,盡管我理解了大多數代碼,但仍不確定為什么或如何可以在委托方法中引用文本字段對象而不引用文本字段屬性的名稱。
因此,假設您的視圖控制器中有一個名為myCrazyTextField
的文本字段屬性,然后說明為什么或如何使用諸如以下方法的委托方法:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
只使用“ textField”引用文本字段對象?
在這種情況下,我想知道為什么不是:
myCrazyTextField.resignFirstResponder()
代替
textField.resignFirstResponder()
嗎?
我們這些委托方法是通用的。 它們僅適用於您對其執行以下操作的那些文本字段
myCrazyTextField.delegate=self
完成后,這些文本字段將響應您的方法textFieldShouldReturn
在方法內部,您可以分別標識您的文本字段,例如
if textfield == myCrazyTextField
您可以同時使用myCrazyTextField
和textField
。 textField
是指當前活動的文本字段。
將委托設置為self,然后為textField放置一個唯一標記,以了解哪個textField確實輸入了該方法。
YourTextfield.delegate = self
YourTextfield.tag = 1
在委托方法中:
If (textfield.tag == 1){ //YourTextfield is the textfield referenced}
希望這可以幫助!
如果在單個ViewController
有多個UITextField
,則只要在Storyboard
或代碼中使用以下方法將ViewController
設置為特定文本字段的委托,就會為每個文本字段調用UITextField
每個委托方法
yourTextfield.delegate = self
。
您可以在委托方法中檢查當前由textfield
引用的textfield
,但是如果您希望您的委托方法可在所有文本字段上使用,則無需執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.