只有字符 - 不是特殊的/来自键盘的数字 - 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 ' - 这会影响我的查询。

我们怎样才能只给用户设置alphabeticUIKeyboard

【问题讨论】:

【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章

允许在 UITextfield ios 中使用德语 UMLAUT 字符

如何使用 Java Robot 输入非小键盘数字?

Java 判断字符串是不是含有所有特殊符号?

如何使用alt键+数字键盘上的数字键打出特殊符号

ios phonegap 数字键盘

在mac上使用jquery虚拟键盘,特殊字符在safari中打印为~n而不是ñ