UITableView список редактируемых текстовых полей - PullRequest
3 голосов
/ 22 декабря 2008

Я знаю, что это может не соответствовать рекомендациям Apple по созданию интерфейса для iPhone, но я хочу избавиться от одного уровня просмотра и иметь список редактируемых текстовых полей. Кроме того, я хочу, чтобы клавиатура была на экране с самого начала, когда появляется вид.

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

Кто-нибудь знает, как мне организовать вещи, чтобы получить то, что я хочу?

Ответы [ 2 ]

2 голосов
/ 23 декабря 2008

Если вам по-настоящему не нужна клавиатура, чтобы уйти, у UITableView нет причины быть полноэкранным. Вы можете изменить кадр следующим образом (где HEIGHT - это количество пикселей, которое табличное представление займет между своим началом и верхней частью клавиатуры):

tableView.frame = CGRectMake (0,0,320, ВЫСОТА);

1 голос
/ 31 декабря 2009

Если вы настаиваете на том, чтобы заставить пользователя постоянно жить с такой маленькой областью ввода, вы можете облегчить ввод текста, если клавиша возврата также автоматически перейдет к следующему полю ввода текста, переопределив метод UITextEditDelegate:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        if ( textField == self.firstNameField )
        {
            [self.lastNameField becomeFirstResponder];
        }
        else if ( textField == self.lastNameField )
        {
            [self.addressField becomeFirstResponder];
        }
        else if ( textField == self.addressField )
        {
            [self.cityField becomeFirstResponder];
        }
        else if ( textField == self.cityField )
        {
            [self.stateField becomeFirstResponder];
        }
        else if ( textField == self.stateField )
        {
            [self.zipcodeField becomeFirstResponder];
        }
        else if ( textField == self.zipcodeField )
        {
            [textField resignFirstResponder];

            [self.scrollView scrollRectToVisible:self.firstNameField.frame animated:YES];
        }


        return YES;
    }

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

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