2010-12-11 43 views
0


我有一個UITextField,我只需要在這個字段中只允許輸入數字,逗號或點。
如何檢查此字符串是否包含上述任何字符,以及如何替換/刪除它們?檢查一個字符串是否包含字母並取消它們

我場將存儲成本,我只需要數字,逗號或點......

誰能幫助我?
謝謝!

+0

你可以看到這個示例... http://cocoabugs.blogspot.com/2011/01/allowing-only-characters-and-numbers-in.html – 2011-01-07 04:05:44

回答

1

您可以使用UITextFieldDelegate協議中的-textFieldDidEndEditing:方法。只要文本字段退出第一個響應者狀態(即結束編輯),就會調用此方法。這是檢查輸入的字符串的機會。如果您想在輸入每個字符後執行檢查,請按照donkim的建議使用-textField:shouldChangeCharactersInRange:replacementString:

0

而不是檢查字符串爲什麼不能將文本字段的鍵盤值指定爲NumberPad。這樣用戶將無法輸入字符串。

+0

他們仍然可以粘貼任何他們想要的東西。 – 2010-12-11 18:05:02

+0

我想到了這一點,現在我正在使用數字鍵盤......但我需要能夠鍵入逗號或點,基於語言環境......有沒有辦法自定義數字鍵盤以添加另一個按鈕? – matteodv 2010-12-11 18:05:40

+0

@Matthew Frederick我也會阻止這...有沒有辦法自定義鍵盤或檢查這個字符串? – matteodv 2010-12-11 18:07:02

2

對於文本字段,可以使用UITextFieldDelegate並實現textField:shouldChangeCharactersInRange:replacementString:方法。根據文檔,「文本字段在用戶在文本字段中鍵入新字符或刪除現有字符時調用此方法。」在該方法中,您應該檢查所有非數字字符並將其刪除。

+0

我想創建一個類似Matthew Frederick的答案中所述的場景......謝謝! – matteodv 2010-12-11 18:38:32

0

您可以通過監控字段中的用戶輸入並自動刪除不匹配的字符來實現。創建一個IBAction爲方法:

- (IBAction)validateEntry:(id)sender; 

然後將其附加到文本字段的編輯而改變事件。每次當字段中的文本發生變化時,都會調用該方法,無論是從用戶輸入還是從用戶粘貼文本中。

在該方法內部,您可以檢查文本並刪除違規字符,或者更有禮貌地更新UILabel告訴用戶他們已經輸入了無效字符,並禁用任何提交按鈕,直到它被修復。

+0

不幸的是,我不使用IB ...我會做這樣的事情:用戶在文本字段中鍵入somathing,還有字母或其他字符。但是,當他點擊保存按鈕時,必須檢查該字符串,如果它包含不允許的字符,則會出現警告視圖...是否可以這樣做?不過謝謝你的回答! – matteodv 2010-12-11 18:36:23

相關問題