хотел курсор, чтобы перейти к другому полю - PullRequest
0 голосов
/ 08 апреля 2011

Ребята, я работаю над приложением кроссвордов. Я перенес UITextField в соответствующую ячейку, чтобы пользователь мог ввести свое слово, а также реализовал код, который перемещает курсор в смежное поле, если textField доступен в обоих горизонтальныхи поперек.я убедился, что каждый textField может принимать только один символ.

мое требование: -при заполнении вертикального слова курсор должен перейти к следующему вертикальному слову, и если вертикальное поле недоступно, следует перейти к первому горизонтальномуслово

-при заполнении горизонтального слова курсор должен перейти к следующему горизонтальному слову; если горизонтальное поле недоступно, перейти к первому вертикальному слову

-(IBAction)textFieldEditingChanged:(CrossWordTextField*)textField{
int difference;
if ([textField.text length]==1) {
    //[textField resignFirstResponder];
    difference=13;
    if (horizontalDirection) {
        difference=1;
    }
}
else if([textField.text length]==0){
    [textField resignFirstResponder];
    difference=-13;
    if (horizontalDirection) {
        difference=-1;
    }
}

for (UIView *cellView in crossWordView.subviews) {
    if (cellView.tag==textField.superview.tag+difference) {
        for (CrossWordTextField *nextTf in cellView.subviews) {
            if ([nextTf isKindOfClass:[CrossWordTextField class]]) {
                [nextTf becomeFirstResponder];
            }
        }
    }
}

}

Я поместил представление и поместил UITextField в представление для каждой ячейки.crossWordTextField - это класс, расширяющий UITextField.Я взял этот класс, чтобы я мог использовать свойства textField.

PLZ, помогите мне в этом отношении.При необходимости много информации, пожалуйста, верните, я бы предоставил необходимую информацию.

TNQ заранее

1 Ответ

0 голосов
/ 08 апреля 2011

Я думаю, что вы должны работать с двумерной матрицей (массивом).Это сложно объяснить, но я думаю, что кроссворд в виде квадрата и его границы таковы, что ваш кроссворд вписывается в матрицу.Таким образом, у вас будут некоторые элементы с текстовыми полями, а другие - без нуля (NULL).Если у вас есть фокус на текстовом поле, вы можете запросить соседние текстовые поля в этой матрице.У меня нет достаточно времени, чтобы написать пример, но я надеюсь, что это указывает на решение.

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