UITableViewCellの中に埋め込まれている間最初の応答者になるためのUITextFieldを告げます

StackOverflow https://stackoverflow.com/questions/1732798

質問

私はUITextFieldのサブビューですUITableViewCellを持っています。

ときに私の見解負荷、私はテキストフィールドがファーストレスポンダになりたいです。私はこれを行うには、表のセル内のテキストフィールドへのポインタを持っている私がしようとしています:

[myTextField becomeFirstResponder];

このリターンは、ドキュメントによると、テキストフィールドがファーストレスポンダになることを拒否したことを意味する...私が間違って何をしているのですか?

、関係なく、それは呼ばれていたときの、すべての時間をNO

編集ます:

textfieldは適切に触れられることに応答します。その後、キーボードを持ち出します。これは、問題が発生したことをプログラムでbecomefirstresponderするためにそれを言ったときだけです。

役に立ちましたか?

解決

これは、私がそれをファーストレスポンダを送信しようとしていたときにテキストフィールドがnilだったことが判明しました。 ライフサイクルの後半becomeFirstResponderを送信すると、働いています。

他のヒント

私はグループ化されたテーブルビューセルのサブビューとして追加したテキストフィールドと同じ問題を抱えていた - しかし、一部の周り突く後の溶液を考え出し

と仮定すると、あなたがcellForRowAtIndexPathメソッドでテキストフィールドにタグを与えている、あなたはこのような何かを行うことができます:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

myTextField = (UITextField *)[cell viewWithTag:kMyTextFieldTag];
[myTextField becomeFirstResponder];
}
viewDidLoadが働くだろう(無効) -

でそれを呼び出します。

-(void)viewDidLoad{
   [super viewDidLoad];
   // Do any additional setup after loading the view.
   [self.myTextField becomeFirstResponder] 

   //... any other code you need 
}

私はUITextFieldcellForRowAtIndexPathの内側に最初のレスポンダを作った時にカーソルが表示されるまでになっていませんでした。テキストフィールドだけで結構な仕事だろうが、それはフィールドの内側に点滅するカーソルを示していませんでした。ボタンを長押しするだろうというとき、ズーム拡大]もカーソルが表示されません。

私はbecomeFirstResponderメソッドの内部で、私のdidSelectRowAtIndexを設定することで、この奇妙な問題を回避なっています。

editingに設定あなたのUITableViewのYESプロパティですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top