我正在寫一個iPhone應用程序,它具有許多需要用戶輸入一堆數據的UITextFields。我想要一個簡單的「刪除」工具,允許用戶放棄他們放入多個字段的任何數據。如何以編程方式刪除UITextField的內容?
我一直在爲這個問題奮鬥了幾天。我似乎無法找到到達單個文本字段並更改文本的方法。無論我嘗試什麼,我的應用都會向我拋出錯誤。
我正在寫一個iPhone應用程序,它具有許多需要用戶輸入一堆數據的UITextFields。我想要一個簡單的「刪除」工具,允許用戶放棄他們放入多個字段的任何數據。如何以編程方式刪除UITextField的內容?
我一直在爲這個問題奮鬥了幾天。我似乎無法找到到達單個文本字段並更改文本的方法。無論我嘗試什麼,我的應用都會向我拋出錯誤。
有解決這個的幾種方法。
您可以編寫代碼來逐個擦除它們。爲此,您爲每個人創建一個IBOutlet
,併爲其text
屬性指定一個空字符串。如果你只有幾個領域,那是最簡單的。如果你有更多,它不是很好。
您可以使它們成爲普通容器視圖的所有子節點並遍歷其子視圖。這樣,你只需要連接一個IBOutlet
。
您可以遍歷整個視圖層次結構並清空所有找到的文本字段。
另一種方法,蘋果沒有很好的記錄,是使用IBOutletCollection
。這樣,您可以將所有文本字段分配給一個IBOutletCollection
並循環。這可能是最簡單,最直接的方式。
剛剛從觀看新變形金剛電影回來......當女孩建議去看動作片,你不會說不! :)我使用了你描述的IBOutletCollection方法,它使用奇蹟和一行代碼。我聲明瞭一個數組,並將所有文本字段鏈接到IB中。我只是在操作表中引用數組,並將其中一個按鈕設置爲[inputData setValue:(nil)forKey:@「text」]。簡單,當你知道如何!謝謝 :) – Chris
你可以只使用指定標記屬性界面生成器的序列標籤給每個文本框,然後得到的文本框這樣
UITextField *txtf = (UITextField*)[self.view viewWithTag:aTagValue];
txtf.text = @""; or nil;
是的,我在IB中創建了字段 – Chris
您是否將IBOutlets製作爲文本字段? – jburns20