Ios 如何使用搜索栏进行姓名搜索和日期搜索,而无需填充//&引用;

Ios 如何使用搜索栏进行姓名搜索和日期搜索,而无需填充//&引用;,ios,uisearchbar,Ios,Uisearchbar,我的应用程序使用uisearchbar和uitableview 我可以搜索姓名和日期,但当我搜索日期时,我应该填充“/”,因为它以该格式存储在数据库中。 我已经编写了一个谓词来执行此搜索。 这就是我尝试过的: - (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { NSString *txt=searchBar.

我的应用程序使用uisearchbar和uitableview 我可以搜索姓名和日期,但当我搜索日期时,我应该填充“/”,因为它以该格式存储在数据库中。 我已经编写了一个谓词来执行此搜索。 这就是我尝试过的:

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    NSString *txt=searchBar.text;
    BOOL canEdit=NO;

    NSCharacterSet *myCharSet=[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];
    for (int i=0; i<[txt length]; i++) {
        unichar c = [txt characterAtIndex:i];
        if (![myCharSet characterIsMember:c]) {
            canEdit=NO;
        }
        else {
            canEdit=YES;
        }
    }

    if (canEdit) {
        searchBar.text=text;
        return canEdit;
    }

    else if(([txt length]==10 && range.location>11))
        return NO;
    2
    txt=[txt stringByReplacingCharactersInRange:range withString:text];
    txt=[txt stringByReplacingOccurrencesOfString:@" " withString:@""];
    txt=[txt stringByReplacingOccurrencesOfString:@"/" withString:@""];

    NSMutableString *mutableText=[txt mutableCopy];

    for (NSUInteger i=2; i< mutableText.length && i<6;i+=3) {
        [mutableText insertString:@"/" atIndex:i];
    }

    txt=mutableText;
    if(txt.length > 10){
        txt=[txt stringByReplacingCharactersInRange:NSMakeRange(10, mutableText.length-10) withString:@""];

    }

    searchBar.text=txt;
    return NO;

}
-(BOOL)搜索栏:(UISearchBar*)搜索栏应更改文本范围:(NSRange)范围替换文本:(NSString*)文本
{
NSString*txt=searchBar.text;
BOOL canEdit=否;
NSCharacterSet*myCharSet=[NSCharacterSet characterSetWithCharactersInString:@“abcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz]”;
对于(int i=0;i11))
返回否;
2.
txt=[txt stringByReplacingCharactersInRange:range with string:text];
txt=[txt stringByReplacingOccurrencesOfString:@“with string:@]”;
txt=[txt stringByReplacingOccurrencesOfString:@”/“with string:@”“”;
NSMutableString*mutableText=[txt mutableCopy];
对于(i=2;i

当我在搜索字段中键入日期时,如何通过自动填充“/”来进行搜索。

[NSString stringWithFormat:@/%@,yourdate]
?我建议您使用选择器进行日期选择。您的循环逻辑有缺陷,因此您基本上只测试txt中的最后一个字符(可能您想知道txt中是否有任何非字母字符)