2011-02-10 83 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