2013-06-17 1 views
1

Я добавляю элемент выбора контактов в своем приложении, однако мне не нужны функции поиска.Как скрыть/удалить строку поиска на Contact Picker

Как скрыть/удалить панель поиска на Contact Picker (ABPeoplePickerNavigationController)?

+0

выбора адреса? это какая-то пользовательская библиотека. Если да, то какой-то –

+0

http://stackoverflow.com/questions/16815238/abpeoplepickernavigationcontroller-display-all-contact-data-in-a-single-cel/16815609#16815609 – Rajneesh071

ответ

2
static BOOL foundSearchBar = NO; 
- (void)findSearchBar:(UIView*)parent mark:(NSString*)mark { 

    for(UIView* v in [parent subviews]) { 

     //if(foundSearchBar) return; 

     NSLog(@"%@%@",mark,NSStringFromClass([v class])); 

     if([v isKindOfClass:[UISearchBar class]]) { 
      [(UISearchBar*)v setTintColor:[UIColor blackColor]]; 
      v.hidden=YES; 
//   foundSearchBar = YES; 
      break; 
     } 
     if([v isKindOfClass:[UITableView class]]) { 
      CGRect temp =v.frame; 
      temp.origin.y=temp.origin.y-44; 
      temp.size.height=temp.size.height+44; 
      v.frame=temp; 
      //foundSearchBar = YES; 
      break; 
     } 
     [self findSearchBar:v mark:[mark stringByAppendingString:@"> "]]; 
    } 
} 

вызова метода выше после того, как подборщика представлен, как показано ниже:

-(void)showPeoplePickerController 
{ 
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
    picker.peoplePickerDelegate = self; 
    picker.view.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
    // Display only a person's phone, email, and birthdate 
    NSArray *displayedItems = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonPhoneProperty], 
           [NSNumber numberWithInt:kABPersonEmailProperty], 
           [NSNumber numberWithInt:kABPersonBirthdayProperty],[NSNumber numberWithInt:kABPersonAddressProperty],nil]; 

    picker.displayedProperties = displayedItems; 
    // Show the picker 
    [self presentViewController:picker animated:YES completion:nil]; 
    [self findSearchBar:[picker view] mark:@"> "]; 

    [picker release]; 
} 
+0

Это работает, но AZ на правой стороне, разрезает A и B и начинается с C. Также, в следующий раз, когда я загружаю сборщик, панель поиска снова появляется. –

+0

Да, я этого не заметил. проверка .. – Nookaraju

+0

Я отредактировал ваш код :) –

0
-(void)showAddressBook { 
    ABPeoplePickerNavigationController *addressBook = [[ABPeoplePickerNavigationController alloc] init]; 
    [addressBook setPeoplePickerDelegate:self]; 
    addressBook.delegate = self; 
    addressBook.navigationBar.topItem.title = @"iPhone Contacts"; 
    UIView *view = addressBook.topViewController.view; 
    for (UIView *v in view.subviews) { 
     if ([v isKindOfClass:[UITableView class]]) { 
      CGRect temp = v.frame; 
      temp.origin.y = temp.origin.y - 44; 
      temp.size.height = temp.size.height + 44; 
      v.frame = temp; 
     } 
    } 
    [addressBook release]; 
} 

- (void)navigationController:(UINavigationController*)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    if ([navigationController isKindOfClass:[ABPeoplePickerNavigationController class]]) { 
     UISearchDisplayController *searchDisplayController = navigationController.topViewController.searchDisplayController; 
     [searchDisplayController.searchBar setHidden:YES]; 
    } 
}