установка нескольких UITextView в редактируемые заставляет курсор мигать между ними - PullRequest
0 голосов
/ 06 августа 2010

Я пытаюсь установить UITextViews в наборе UITableViewCell для редактирования, когда пользователь нажимает кнопку «редактировать» для UITableView. Каждый UITableViewCell имеет UITextField (cell.blurb). Этот код установит каждый UITextView в редактируемый, однако курсор очень быстро чередуется между ними. Я почти уверен, что это проблема цепочки респондентов (возможно, все они становятся первыми респондентами?), Однако я не могу ее исправить. Я пытался иметь каждый UITextView resignFirstResponder (за исключением первого в списке), но он ничего не делает. В таблице XIB они недоступны для редактирования.

//set all text areas to editable and opaque
int numSections = [_tableView numberOfSections];
for (int s = 0; s < numSections; s++) {
    int numRows = [_tableView numberOfRowsInSection: s];
    for (int r = 0; r < numRows; r++) {
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:r inSection:s];
        CustomTableViewCell *cell = (CustomTableViewCell *)[_tableView cellForRowAtIndexPath:indexPath];
        [cell blurb].editable = YES;
        [[cell blurb] resignFirstResponder];

        //set the first row's UITableView to the first responder
        if (s == 0 && r == 0)
            [[cell blurb] becomeFirstResponder];
    }
}

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Единственное решение, которое мне удалось сделать, - создать два UITextViews, один редактируемый, другой с одинаковыми рамкой и свойствами, и управлять непрозрачностью каждого в соответствии с редактируемым состоянием. Довольно неубедительно, не так ли?

Еще одна вещь, мне пришлось реализовать это в моем делегате (который является подклассом UITableViewCell):

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
     if (!self.editing)
          return NO;
     return YES;
}

в противном случае, по неизвестной причине, конец анимации UITableView (когда он выходит из режима редактирования) снова вызывает становлениеFirstResponder на одном из UITextView.

Вот ветка о девфорумах https://devforums.apple.com/message/290194

0 голосов
/ 06 августа 2010
if (s == 0 && r == 0) {
  [[cell blurb] becomeFirstResponder];
} else if ([[cell blurb] isFirstResponder]) {
  [[cell blurb] resignFirstResponder];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...