2011-02-10 81 views
3

我有一個文本框,我希望用戶只輸入數字。我在那裏實現了數字鍵盤。但是,如果有人將我的應用放在後臺並從其他應用複製某些字符串並返回到我的應用並粘貼,它會成功將字符串內容粘貼到我的數字文本字段中。我怎樣才能限制這種情況?在數字文本框中限制字符串的複製粘貼

回答

6

@theChrisKent已接近,但有一個稍微好一點的方法。使用委託方法-textView:shouldChangeTextInRange:replacementText:。檢查replacementText是否包含任何非數字,如果是,則返回NO

+0

+1這是一個更好的解決方案! – theChrisKent 2011-02-13 03:21:55

0

你可以在這個問題上跟隨最多的回答完全禁用粘貼:How disable Copy, Cut, Select, Select All in UITextView

只要繼承了UITextView和覆蓋此方法(代碼上面的問題被盜)

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:) 
     return NO; 
    return [super canPerformAction:action withSender:sender]; 
} 

否則你可以實現UITextViewDelegate協議並實現textViewDidChange:方法並檢查它是否爲數字。如果不是,請撤消更改。這裏的文檔:http://developer.apple.com/library/ios/documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html#//apple_ref/occ/intfm/UITextViewDelegate/textViewDidChange

相關問題