2012-06-25 17 views
6

これは奇妙なことですが、UIAlertViewを継承した独自のクラスを作成しました。このクラスでは、サブビューとしてUITableViewを追加し、セルにはUILabelとUITextFieldが含まれています。UITextField:テキストを入力することはできませんが、スマイリー、コピー/ペースト、バックスペースは問題ありません。

クラスを実装:UITableViewDelegate、UITableViewDataSourceとUITextFieldDelegate、

cellForRowAtIndexPathの各cell.uiTxtField.delegateは、自己に設定されています。

以下は、シミュレータに、実際のiPhoneのデバイスの両方で起こります

  • 私はキーボードがポップアップし、 textFieldDidBeginEditingがトリガされるのUITextFieldにポインタ/指を設定し、それは罰金だと予想通り。

  • 私はUITextFieldのを離れるときは、textFieldDidEndEditingがトリガされ、 も罰金と予想通りです。

  • しかし、テキスト入力を開始すると、カーソルは点滅を停止しますが、テキストは表示されません は、UITextFieldに入力されます。

  • 私はコピーすることができますし、テキストが含まれているのUITextFieldにポインタ/指を押しながらテキストを選択しコピーし、別のUITextField(または同じ)に貼り付ける貼り付けます。

  • バックスペースが問題ありません。

  • それも、私は入力しないことができる唯一のことは、文字/文字と数字であるの私はシンボルとスマイリーなど

  • を入力してみましょう

  • ない戻るボタンtextFieldDi以来トリガーtextFieldShouldReturn

dBeginEditingとtextFieldDidEndEditingがトリガーされました。デリゲートの設定は正常ですが、テキストを入力できない理由とtextFieldShouldReturnがトリガーされない理由を理解できません。

Thisが関連している可能性があります。

何か助けていただければ幸いです。

+0

私は同じ問題を抱えています。誰もが解決策を知っています – Anju

答えて

0

これをあなたのカスタムクラスの "init"メソッドに入れましたか?

...あなたの実装ファイルでこのようなコードを入れて

@implementation CustomAlertClass <UITextFieldDelegate> 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
    // 
    self.YourTextField.delegate = self; 
} 
return self; 
} 

@end 
0

短い答えを試してみてください:あなたはUITextFieldの上の「編集」プロパティを台無しに任意のコードを持っていないことを確認してください。

私は間違いなくが適切にデリゲートを設定し、textFieldDidBeginEditingとtextFieldDidEndEditingが呼び出さなっていたが、textFieldShouldReturnとshouldChangeCharactersInRangeが呼び出さなっていなかったた同じ症状を持っていました。私はまた、任意の文字を入力することはできませんでしたが、私はテキストフィールドに貼り付けをコピーすることができます。私の場合、私はまた、UITableViewのセルの中にテキストフィールドを置くことになりました。私の状況は、削除ボタンが機能しないという点でわずかに異なりました。

私が間違っていたのは、自分のセルで未加工のUITextFieldを使用していなかったことです。私自身のUITextFieldのサブクラスがありました。私のサブクラスはプロパティ 'isEditing'を持っていました。これは、UITextFieldDelegateメソッドで修正していたもので、テキストフィールドが選択されたときにテーブルビューをスクロールする方法を理解するために使用されました。これはUITextFieldの 'isEditing'メソッドをオーバーライドしていますが、UITextFieldの 'editing'プロパティのゲッターとして使用されています。一度私は私のサブクラスisEditingプロパティをすべて取り除いて、期待どおりに動作しました。

関連する問題