2013-02-28 2 views
1

Я столкнулся с большой проблемой. У меня есть textfield, для которого я выполняю функцию автозаполнения, чтобы отображать список предметов, когда внутри внутри. Я показываю элементы в tableView (autocomplete tableView). У меня есть UIbutton ниже textfield. Теперь, когда я выбираю элемент из текстового поля автозаполнения и нажимаю кнопку, он не отвечает. Я не знаю почему.UIButton вывести на передний план scrollview

Я принес его фронт в didendediting, а также в didSelectrow но не use.I добавили UIbutton к ScrollView (testScroll)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
      Name.text = selectedCell.textLabel.text; 
      [Name resignFirstResponder]; 
      [testScroll bringSubviewToFront:btnSearch]; 
      autocompleteTableView.hidden=true; 
} 
-(void)textFieldDidEndEditing:(UITextField *)textField{ 
if(textField==CompanyName) 
    { 

     [testScroll bringSubviewToFront:btnSearch]; 

} 

}

Где я иду неправильно?

EDIT:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 



    if(textField==Name) 
    { 

     autocompleteTableView.hidden = NO; 

     NSString *substring = [NSString stringWithString:textField.text]; 
     substring = [substring stringByReplacingCharactersInRange:range withString:string]; 
     [self searchAutocompleteEntriesWithSubstring:substring]; 
     return YES; 
     if([Name.text length]==0) 
     { 
      autocompleteTableView.hidden = YES; 

     } 
    } 



} 


- (void)connectionDidFinishLoading:(NSURLConnection *)connection 

{ 

     parser = [[NSXMLParser alloc] initWithData:receivedData]; 
     [parser setDelegate:self]; 
     [parser setShouldProcessNamespaces:NO]; 
     [parser setShouldReportNamespacePrefixes:NO]; 
     [parser setShouldResolveExternalEntities:NO]; 
     [parser parse]; 
     [parser release]; 



     if([arr4 count]!=0) 
     { 
      self.autocompleteUrls = [[[NSMutableArray alloc] init]autorelease]; 
      viewForautoCompleteTableView = [[UIView alloc]initWithFrame:CGRectMake(220, 370, 295, 230)]; 



      if(autocompleteTableView) 
       [autocompleteTableView removeFromSuperview]; 

      autocompleteTableView = [[UITableView alloc] initWithFrame:CGRectMake(0,0,295,150) style:UITableViewStyleGrouped]; 
      autocompleteTableView.delegate = self; 
      autocompleteTableView.dataSource = self; 
      autocompleteTableView.scrollEnabled = YES; 
      autocompleteTableView.backgroundColor = [UIColor lightTextColor]; 
      autocompleteTableView.rowHeight=28; 

      autocompleteTableView.backgroundView = nil; 
      autocompleteTableView.backgroundColor = [UIColor whiteColor]; 


      autocompleteTableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
      [autocompleteTableView setSeparatorColor:[UIColor orangeColor]]; 
      [viewForautoCompleteTableView setFrame:CGRectMake(220,370 ,295,autocompleteTableView.frame.size.height)]; 


      [viewForautoCompleteTableView addSubview:autocompleteTableView]; 
      [self.view addSubview:viewForautoCompleteTableView]; 

      [autocompleteUrls removeAllObjects]; 
      for(int i=0;i<[arr4 count];i++) 
      { 
      NSString *curString = [NSString stringWithFormat:@"%@ %@",[[arr4 objectAtIndex:i] valueForKey:@"Name"],[[arr4 objectAtIndex:i]valueForKey:@"LastName"]]; 

       [autocompleteUrls addObject:curString]; 

      } 




     } 
     [autocompleteTableView reloadData]; 


} 
+0

Whay вы используете свиток с табличном ... любые способы изменить цвет всех вид на зеленый красный синий независимо, а затем запустить приложение и будет получить справедливую идею – amar

+0

Привет @arizah, вставить код автозаполнения Tableview , Может быть, после того, как выбранное значение отобразится в текстовом поле, tableview не исчезнет полностью и скрывает кнопку под ним. пожалуйста, проверьте. –

+0

chck if button id touchable – rptwsthi

ответ

2

я испытал те же проблемы и фиксировали с помощью ниже кода.

Редактировать ниже двух функций, как показано ниже:

in .h: 

int isValueSelected; 

в .m:

В viewDidLoad: isValueSelected = 0;

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 

     if (isValueSelected == 1) 
     { 
      autocompleteTableView.hidden = YES; 
      isValueSelected = 0; 
     }else{ 
      NSString *substring = [NSString stringWithString:textField.text]; 
      substring = [substring stringByReplacingCharactersInRange:range withString:string]; 
      [self searchAutocompleteEntriesWithSubstring:substring]; 
      if((substring.length ==0) || ([substring characterAtIndex:0] == 10) || (autocompleteUrls.count == 0)){ 
       autocompleteTableView.hidden = YES; 
      }else{ 
       autocompleteTableView.hidden = NO; 
      } 


     } 

     return YES; 
    } 


    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

     UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; 
     urlField.text = selectedCell.textLabel.text; 
     isValueSelected = 1; 
     autocompleteTableView.hidden = YES; 

    } 
+0

Да, я пробовал только сейчас, и все-таки я не получаю кнопку clickable.I не знаю, я правильно понял код моего исправления? Найди решение – Honey

+0

Могу ли я узнать, что это такое ([substring characterAtIndex: 0] == 10)? – Honey

+0

Эй, ты проверил? – Honey

Смежные вопросы