1

我从 UISearchBar 得到奇怪的行为。当我在 UISearchBar 中按下多个空格时,它会自动放置句号“。” 在搜索栏文本中。我不明白为什么会这样。这是我的代码,

 NSString *str = [searchBar.text stringByTrimmingCharactersInSet:
                 [NSCharacterSet whitespaceAndNewlineCharacterSet]];


NSLog(@"%@",searchBar.text );

我按空格,然后按 f,然后按 2 次空格,它会完全停止。请帮我。提前致谢。

4

2 回答 2

3

这是 iOS 的属性,而不是 UISearchBar 元素。

它可配置为“'。' iOS 设置部分的通用 -> 键盘中的快捷方式”。它的描述:“双击空格键将插入一个句点,然后是一个空格。”

至于以编程方式删除句点/句号,我想你可以使用正则表达式来做到这一点,但我不推荐它。因为该功能是键盘用户偏好的一部分,所以无论您使用什么应用程序,它的作用都是一样的。这有点像将用户键入的所有文本都更改为大写,他们可能不希望这样(或者他们可能习惯于双击 shift),因此您的应用程序变得混乱且难以使用。

我会说保持原样。

于 2012-07-30T11:23:23.540 回答
1

如果真的要去掉句号的自动加法,

对于 UISearchBar 你可以覆盖,

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    if ([text isEqualToString:@". "]) {
        return NO;
    }
}

对于 UITextField 您可以执行相同的操作,但改写以下内容,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
于 2014-04-17T00:17:10.600 回答