只有字符 - 不是特殊的/来自键盘的数字 - iPhone
Posted
技术标签:
【中文标题】只有字符 - 不是特殊的/来自键盘的数字 - iPhone【英文标题】:only character - not special/numbers from keyboard - iPhone 【发布时间】:2009-08-13 23:19:42 【问题描述】:普通UITextField
显示UIKeyboard
,其中包括alpha+Numberic+specials
但我只需要 alpha...
我需要这个,因为如果用户输入类似 -- A'bad
它有一个 char ' - 这会影响我的查询。
我们怎样才能只给用户设置alphabetic
UIKeyboard
?
【问题讨论】:
【参考方案1】:我想。我得到了答案。
在您的UIViewController
文件.h 中添加delegate<UITextfieldDelegate>
现在将以下代码添加到 .m 文件
- (BOOL) textField:(UITextField*)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString*)textEntered
for (int i = 0; i < [textEntered length]; i++)
unichar c = [textEntered characterAtIndex:i];
if (![myCharSet characterIsMember:c])
return NO;
return YES;
【讨论】:
【参考方案2】:这篇 SO 帖子回答了您的问题: UIkeyboard type
【讨论】:
【参考方案3】:你应该像我下面那样使用;
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
NSMutableCharacterSet *filteredChars = [NSMutableCharacterSet letterCharacterSet];
[filteredChars formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
NSCharacterSet *blockedCharSet = [filteredChars invertedSet];
if (([string rangeOfCharacterFromSet:blockedCharSet].location == NSNotFound))
return YES;
return NO;
【讨论】:
【参考方案4】:而不是禁用或不允许用户添加 '(apostorpe) 使用以下代码,它将允许您插入 '(apostorpe)
[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];
【讨论】:
以上是关于只有字符 - 不是特殊的/来自键盘的数字 - iPhone的主要内容,如果未能解决你的问题,请参考以下文章