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 に答える