簡體   English   中英

使用委托方法引用文本字段屬性

[英]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

您可以同時使用myCrazyTextFieldtextField 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM