Работа со сложенными UIB-кнопками - PullRequest
0 голосов
/ 18 мая 2011

Привет, ребята, поэтому у меня есть эта панель поиска и множество кнопок под ней. Поэтому, когда вы нажимаете на строку поиска, появляется клавиатура, однако я хочу, чтобы пользователь мог щелкнуть в любом месте ниже панели поиска и над клавиатурой, чтобы выйти из режима поиска. Я немного очистил SO и нашел решение, которое предложило мне создать невидимую кнопку, которая перехватывает события касания, которые я могу использовать, чтобы оставить статус первого респондента в строке поиска. И я могу просто скрыть / отключить кнопку, когда она мне не нужна, чтобы кнопки под ней можно было нажимать правильно? Неправильно. setHidden и setEnabled: не делают трюк. Вот соответствующий код:

//touch event on button outsideSearchBarButton which is invisible
- (IBAction)selectOutsideSearchBar:(id)sender {
    NSLog(@"Selected outside search bar");
    [searchBar resignFirstResponder];
    [outsideSearchBarButton setEnabled:NO];
    [outsideSearchBarButton setHidden:YES];
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
    NSLog(@"searchbarTextDidBeginEditing");
    [outsideSearchBarButton setHidden:NO];
    [outsideSearchBarButton setEnabled:YES];
}

Настройка кнопки на отключение или скрытие через nib-файл мне совсем не помогает. Либо кнопка никогда не существует (я не могу щелкнуть между строкой поиска и клавиатурой, и клавиатура исчезла), либо всегда существует (я не могу нажать ни одну из кнопок под этой невидимой кнопкой). Любая помощь приветствуется. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 18 мая 2011
//touch event on button outsideSearchBarButton which is invisible
- (IBAction)selectOutsideSearchBar:(id)sender {
    NSLog(@"Selected outside search bar");
    [searchBar resignFirstResponder];
    outsideSearchBarButton.userInteractionEnabled = NO;
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
    NSLog(@"searchbarTextDidBeginEditing");
    outsideSearchBarButton.userInteractionEnabled = YES;
}

Сделай это.

1 голос
/ 18 мая 2011

зайдите в конструктор интерфейса и выберите кнопку, с которой вы удаляете клавиатуру во время поиска, затем выберите раскладку в вышеприведенном меню и выберите отправить обратно. Затем в окне инспектора установите стиль кнопки на пользовательский.

Надеюсь, это поможет вам .......

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...