2016-07-06 6 views
1

Ich habe eine UITextField in einer meiner Sammlung View-Zellen. Ich möchte, dass es Ersthelfer wird, sobald diese Zelle auf dem Bildschirm ist.UITextField wird nicht zum Ersthelfer in der Sammlungsansicht

So, ich rufe [cell.textField becomeFirstResponder] in cellForItemAtIndexPath. Dies funktioniert jedoch nur, wenn die App geöffnet wird (die Zelle, die das uitextfield enthält, ist bereits beim App-Start sichtbar). Wenn ich von der Zelle weg blättern und dann zurück blättern kann, wird das Textfeld nicht mehr zum Ersthelfer.

Was könnte das Problem sein?

EDIT: ich programmatisch auf die Zelle, die die Sammlung Ansicht verschiebe die UITextField enthält, bevor becomeFirstResponder

+0

Können Sie nach Ihren Code, wo Sie zu der bestimmten Zelle scrollen? – WMios

+1

Ich löste es durch einen etwas anderen Ansatz, überprüfe meine Antwort! –

Antwort

1

Es scheint, als das Scrollen der Sammlung Ansicht der Sammlung der Ersthelfer bis zum Scrollen beendet ansehen gemacht, so habe ich meine Textfeld den Ersthelfer in diesem Delegatmethode:

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView 
0

Aufruf sollten Sie den Code setzen in der

- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath 

Funktion als nach dem class ref:

Weist den Delegaten an, dass die angegebene Zelle in der Nähe von b ist e wird in der Sammlungsansicht angezeigt.

+0

Danke, werde es definitiv heute Nacht versuchen! Bis dahin, können Sie mir sagen, warum das funktionieren würde, wenn cellForItemAtIndexPath nicht funktioniert? –

+0

Es scheint, als ob diese Funktion direkt vor dem Zeichnen der Zelle aufgerufen wird, nicht nur dann, wenn sie gezeichnet wird, damit sie funktioniert. – WMios

+0

Beachten Sie auch, dass Ihre Antwort für UITableView ist, ich verwende UICollectionView. Jedoch gibt es eine ähnliche Methode seit iOS 8: - '(void) collectionView: (UICollectionView *) collectionView willDisplayCell: (UICollectionViewCell *) Zelle forItemAtIndexPath: (NSIndexPath *) indexPath' –

Verwandte Themen