我想知道是否有方法可以告訴用戶是否在UITextField
中輸入了2秒鐘。一種告訴用戶何時完成在定時間隔內輸入的方法?
如果這是不可能的,我想知道是否有一種方式來告訴我們,如果用戶在用戶的文本字段中的錯誤類型 - 例如:
有一個UITextView
其中包含從NSArray
對象用戶必須輸入文本字段並匹配文本視圖上的內容。如果他們犯了一個錯誤,它會告訴他們(我需要幫助的) - 注意:如果用戶正確鍵入字符串,它會自動接受它並繼續下一個 - 沒有按鈕提交字符串 - 它通過文本字段來完成。
我想知道是否有方法可以告訴用戶是否在UITextField
中輸入了2秒鐘。一種告訴用戶何時完成在定時間隔內輸入的方法?
如果這是不可能的,我想知道是否有一種方式來告訴我們,如果用戶在用戶的文本字段中的錯誤類型 - 例如:
有一個UITextView
其中包含從NSArray
對象用戶必須輸入文本字段並匹配文本視圖上的內容。如果他們犯了一個錯誤,它會告訴他們(我需要幫助的) - 注意:如果用戶正確鍵入字符串,它會自動接受它並繼續下一個 - 沒有按鈕提交字符串 - 它通過文本字段來完成。
這是可能的,但它會涉及一些工作。您需要查看NSTimer和NSDate類以及UITextFieldDelegate協議。基本上,每次用戶在文本字段中輸入內容時,都會觸發委託方法。該方法然後緩存當前時間(通過[NSDate日期])並啓動一個持續時間爲2秒的計時器。當計時器觸發時,它會觸發一個方法來檢查緩存的NSDate,以查看文本字段中的最後輸入是否在最後兩秒內。
查看代表方法UITextFile
和UITextView
。當用戶更改字段的狀態時,可以實現幾種方法。另外,如果您需要特定的時間間隔,您可以啓動NSTimer
。
無論您處理文本更改,您都可以啓動NSTimer
。如果在定時器觸發前輸入了更多的文本,您可以撥打-invalidate
來取消它,但如果定時器觸發,則說明沒有輸入文本。
註冊文本字段上的文本更改事件。發生更改時,創建或更新計時器成員。如果定時器啓動,您的時間已過。清理時,使計時器無效。
-(void) textFieldChanged:(id)sender { // UIControlEventEditingChanged
NSTimeInterval tooLong = 2.0;
if (myTimer) [myTimer setFireDate:[NSDate dateWithTimeIntervalSinceNow:tooLong]];
else myTimer = [[NSTimer scheduledTimerWithTimeInterval:tooLong ... repeats:NO] retain];
}
嗯,謝謝。你知道我能做到這一點嗎? (告訴用戶輸入錯誤的方式) – Alex 2010-07-18 01:01:25
如果你想去定時器路線,你可以用Jeff Kelley的答案保存一些工作。 爲了告訴他們是否輸入錯誤,可以使用委託方法將正確的答案與輸入的內容進行比較。 考慮到你的整體情況,我建議通過理解文本字段的代表開始。因爲所有可能的解決方案都將涉及這一點。 – 2010-07-18 01:28:46