2017-01-12 4 views
0

How do I achieve thisДобавить UISearchBar выше клавиатуры

Я хочу, чтобы отобразить панель поиска над клавиатурой. Всякий раз, когда появляется клавиатура, панель поиска также должна появляться. Как это сделать?

+0

может у показать ur попытался код –

+0

Я создал программу поиска программно и думаю, чтобы добавить ее в качестве входного представления клавиатуры ... Но не знаю, что реализовать в коде ... –

ответ

0

Создайте объект UISearch панели и добавить наблюдателя для клавиатуры в textFieldDidBeginEditing/textViewDidBeginEditing

- (void)textViewDidBeginEditing:(UITextView *)textView 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWasShown:) 
               name:UIKeyboardDidShowNotification 
               object:nil]; 
} 

- (void)keyboardWasShown:(NSNotification *)notification 
{ 

CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

int height = MIN(keyboardSize.height,keyboardSize.width); 
int width = MAX(keyboardSize.height,keyboardSize.width); 

//set frame for searchbar 
    searchBar.frame = CGRectMake(0, self.view.frame.size.height - height, width, 50);  
    } 
+0

любая удача ?? ..... – Developer

0
- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 
} 

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    [UIView animateWithDuration:0.3 animations:^{ 
     CGRect f = self.view.frame; 
     f.origin.y = -keyboardSize.height; 
     self.view.frame = f; 
    }]; 
} 

-(void)keyboardWillHide:(NSNotification *)notification 
{ 
    [UIView animateWithDuration:0.3 animations:^{ 
     CGRect f = self.view.frame; 
     f.origin.y = 0.0f; 
     self.view.frame = f; 
    }]; 
} 
3

Вы можете просто использовать textField.inputAccessoryView = поиска бар

textField.inputAccessoryView = mySearchBar; 
+0

Добро пожаловать в переполнение стека! Хотя этот фрагмент кода может ответить на вопрос, лучше включить описание проблемы и как ваш код справится с данной проблемой. Для будущего, вот некоторая информация, [как взломать удивительный ответ] (http://stackoverflow.com/help/how-to-answer) в Stack Overflow. – dirtydanee