Как избавиться от клавиатуры в симуляторе iphone?

Я делаю простое приложение для iphone, в котором у меня есть определенные текстовые поля одно под другим. проблема в том, что когда я добавляю данные в эти первые несколько полей с помощью клавиатуры в симуляторе, появляется клавиатура, которую я не использую для набора текста, поскольку я все еще использую симулятор, а не настоящий телефон. Теперь я не могу вводить данные в текстовые поля, скрытые клавиатурой.

Извините, если мой вопрос глупый, для этого может быть ярлык, но я новичок, и StackOverflow - мой единственный вариант возврата, когда я не могу найти что-то в поиске Google :)


person Amogh Talpallikar    schedule 16.12.2011    source источник
comment
возможный дубликат iPhone - клавиатура скрывает текстовое поле   -  person Vladimir    schedule 16.12.2011


Ответы (5)


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

Я использую это для движения вверх и вниз: на виду, действительно ли загрузка,

{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
 }

и следующие методы

- (void) keyboardWillShow: (NSNotification*) aNotification
{    
    int position = 0;


    if ([txtfld1 isFirstResponder])
        position = 120;
    else if ([txtfld2 isFirstResponder]) position = 120;
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    CGRect rect = [[self view] frame];
    rect.origin.y -= position; 
    [[self view] setFrame: rect];
    [UIView commitAnimations];

}
- (void) keyboardWillHide: (NSNotification*) aNotification

{
    int position = 0;


    if ([txtfld1 isFirstResponder])
        position = 120;
    else if ([txtfld2 isFirstResponder]) position = 120;
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    CGRect rect = [[self view] frame];
    rect.origin.y += position; 
    [[self view] setFrame: rect];
    [UIView commitAnimations];
}
person iOS Developer    schedule 16.12.2011

Просто добавьте делегата textField .. И это его метод делегата

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
      ["your Textfiled object Name" resignFirstResponder];
    }

Установите весь текст, как указано выше. Ваша клавиатура будет отклонена. И я предлагаю держать ваши текстовые поля в режиме прокрутки. Это помогает вам

person Wolverine    schedule 16.12.2011

Вы, вероятно, ищете что-то вроде кнопки «Назад» в Android, которая в любом случае отключает клавиатуру в эмуляторе Android. В симуляторе iOS у вас нет ярлыка или кнопки, которая бы так работала. Вы сможете закрыть клавиатуру с помощью кнопки возврата, но только если вы подключили UITextFieldDelegate в коде. Используйте этот код, чтобы сделать свой кнопка возврата "работа".

person Chris Conway    schedule 08.01.2013

В качестве альтернативы вы можете добавить клавишу RETURN (DONE, GO ...) из инспектора атрибутов.

person ronit    schedule 24.01.2014

Я использую следующий ответ для решения проблемы и надеюсь, что это действительно поможет вам. Вы просто используете этот код в файле view controller.m

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [self animateTextField:textField up:YES];
}


- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [self animateTextField:textField up:NO];
}
person Roby    schedule 02.04.2015