唯一的字符 - 不是键盘上的特殊/数字 - iPhone

发布于 2024-07-30 14:14:46 字数 251 浏览 9 评论 0原文

正常 UITextField 显示一个 UIKeyboard 其中包括 alpha+Numberic+specials

但我只需要 alpha...

我需要这个,因为如果用户输入类似 -- A'bad 的

内容a char ' - 这影响了我的查询。

我们如何为用户设置仅alphabetic UIKeyboard

Normal UITextField displays a UIKeyboard which includes alpha+Numberic+specials

But I need alpha only...

I need this because if user enters something like -- A'bad

it has a char ' -- which is affecting my query .

How we can set only alphabetic UIKeyboard to user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

最冷一天 2024-08-06 14:14:46

我认为。 我得到了答案。

在您的 UIViewController 文件 .h 中添加 delegate

现在将以下代码添加到 .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;

}

I think. I got the answer.

In your UIViewController file .h add delegate<UITextfieldDelegate>

Now add following code to .m file

- (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;

}

君勿笑 2024-08-06 14:14:46

这篇文章回答了你的问题:
UI键盘类型

This SO post answers your question:
UIkeyboard type

深陷 2024-08-06 14:14:46

你应该像我下面那样使用;

- (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;
}

You should use as i do below;

- (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;
}
简美 2024-08-06 14:14:46

它将允许您插入 '(apostorpe),而不是禁用或不允许用户添加 '(apostorpe) 使用以下代码

[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];

Instead of disabling or not allowing user to add '(apostorpe) use following code, it will allow you to insert '(apostorpe)

[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文