когда я набираю что-нибудь в textField, я хочу показать кнопку на панели навигации

ios objective-c iphone ios7 uinavigationbar

58 просмотра

2 ответа

20 Репутация автора

Когда я начинаю писать что-нибудь в textField, кнопка поиска показывает в заголовке.

-(IBAction)actionCloseKeyboard:(id)sender {

    [UIView animateWithDuration:0.5 
                      delay:0 
                    options:UIViewAnimationCurveEaseOut
                 animations:^{                      

                     [self adjustLayout:[[UIApplication sharedApplication] statusBarOrientation]];
                 } completion:^(BOOL finished) {

                     [countrySelector resignFirstResponder];
                     [searchKeyText resignFirstResponder];
                 }];
//Cancel btn finish
UIButton  *CancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[CancelBtn setTitle:CustomLocalizedString(@"CANCEL") forState:UIControlStateNormal];
[CancelBtn addTarget:self action:@selector(actionCloseKeyboard:) forControlEvents:UIControlEventTouchUpInside];
CancelBtn.frame = CGRectMake(0, 0, 80, 30);
CancelBtn.hidden = YES;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:CancelBtn];

//Search Btn

это моя кнопка поиска, которую я хочу показать на панели навигации, когда я начну писать что-либо в текстовом поле.

UIButton *SearchBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[SearchBtn setTitle:CustomLocalizedString(@"FIND CVS") forState:UIControlStateNormal];
[SearchBtn addTarget:self action:@selector(actionFindJobs:) forControlEvents:UIControlEventTouchUpInside];
SearchBtn.frame = CGRectMake(0, 0, 80, 30);
SearchBtn.hidden = YES;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:SearchBtn];

//Condition Hide and Show

if(CancelBtn == true)
{
    CancelBtn.hidden = NO;
    SearchBtn.hidden = NO;
}
}
Автор: Muhammad Rehan Источник Размещён: 19.07.2016 08:08

Ответы (2)


0 плюса

712 Репутация автора

Я думаю, что ваш лучший вариант это реализовать UITextFieldDelegateи в shouldChangeCharactersInRange:методе проверить окончательное количество символов. Так что, если оно больше 0, покажите кнопку, иначе скройте ее.

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

    NSUInteger finalLenght = textField.text.length - range.length + string.length;
    searchButton.hidden = (finalLenght == 0);

    return YES;
}

Также быстрый комментарий, не используйте заглавные буквы для имен переменных (это соглашение об именах). Имена, начинающиеся с заглавных букв, зарезервированы для классов.

Автор: crisisGriega Размещён: 19.07.2016 10:37

0 плюса

1178 Репутация автора

Используйте этот код, он обязательно будет работать,

  - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
      self.navigationButtonOutlet.hidden=NO;
        return YES;
    }

иначе держите кнопку скрытой как хотите

  self.navigationButtonOutlet.hidden=YES;
Автор: Deepraj Chowrasia Размещён: 23.08.2016 09:57
Вопросы из категории :
32x32