1

私はstackoverflowとobjective cが初めてなので、事前に許してください:)

「フォルダーの追加」をクリックすると、セルがコレクションに追加されたときに仮想フォルダーリストを表示する UIcollectionView があります。セルには、FirstResponder を作成する UITextField があり、これにより仮想キーボードがポップアップし、ユーザーはフォルダーの名前を編集できます。追加するすべてのフォルダーでうまく機能します。

問題は、ユーザーがフォルダーをタップしているときです。

CollectionView に reloadData を実行し (タップしたフォルダーのコンテンツを表示したいので)、その後、追加するすべてのフォルダーが仮想キーボードをポップアップ表示せず、UITextField が最初の応答者になりませんか?

誰かがそれがなぜなのか考えていますか?

もう1つの興味深い点は、コレクション(セルのない空の領域)をタップしてから新しいフォルダーを作成しようとすると、キーボードが返されることです..

4

1 に答える 1

1

私の問題は、UITextField がセル自体にあり、UICollectionView が再利用可能なセルを使用しているという事実でした。そのため、毎回別のセル (利用可能な場合は既存のセル、送信された場合は新しいセル) を取得し、becomeFirstRisponder の送信先を見つけることができませんでした。作成時にすべてのセルに一意の識別子を与え、becomeFirstRisponder コマンドを送信するときに正しい識別子を探すことで解決しました。

于 2012-12-05T16:39:45.907 に答える