我創建一個文本字段,它允許用戶輸入一個日期,我想說明要求的格式:mm-dd-yyyy
。當他們鍵入時,它應該用他們輸入的數字替換格式。例如,如果他們輸入125
,它應該看起來像:12-5d-yyyy
。如何確定刪除的位置在的UITextField
我已經能夠得到這個工作(使用textField:shouldChangeCharactersInRange:replacementString:
方法)。但也有2個問題:
當我使其顯示格式加上他們有什麼類型的(通過直接設置
textField.text
),光標移到插入文本的最後更新的文本字段。例如,它目前看起來像:12-30-yyyy|
(其中|
是光標),但我希望它看起來像12-30-|yyyy
。 那麼如何將光標放在上次輸入的位置?我一直沒能確定其中,如果用戶按下退格或刪除發生缺失。我知道,以確定它們按退格鍵或刪除的唯一方式是這樣的:
BOOL thisIsBackspace = ([string length] == 0)
(其中string是replacementString:
價值但這並不告訴我發生的位置所以,我怎麼能確定在一個缺失的UITextField發生。 ?
對不起,我不知道如何檢測光標在哪裏,但有什麼問題可以將用戶重定向到UIDatePicker的另一個視圖,讓用戶選擇日期並使用UITextField將它們重定向回屏幕?在使用你的方法的時候,有人可能實際輸入的值超過了允許的值,例如99天爲一天或13天爲一個月。因此你需要浪費時間來解析可能的錯誤。您可以通過textfield didbeginediting方法重定向用戶 – Eugene 2012-02-02 17:28:35