UITextField:不能输入文本,但是表情符号,复制/粘贴和退格都可以

kri*_*r_o 6 uitableview uitextfield ios4 uitextfielddelegate xcode4.3

我觉得这很奇怪,我创建了自己的继承自UIAlertView的类.在这个类中,我添加了一个UITableView作为子视图,单元格包含一个UILabel和一个UITextField.

该类实现:UITableViewDelegate,UITableViewDataSource和UITextFieldDelegate,

在cellForRowAtIndexPath中,每个cell.uiTxtField.delegate都设置为self.

在模拟器和真正的iPhone设备上都会发生以下情况:

  • 当我在UITextField中设置指针/手指时,弹出键盘并 触发textFieldDidBeginEditing,这很好并且符合预期.

  • 当我离开UITextField时,会触发textFieldDidEndEditing,这也很好并且符合预期.

  • 但是当我开始键入文本时,光标停止闪烁,但没有文本输入到UITextField.

  • 我可以通过在包含文本的UITextField中按住指针/手指来复制和粘贴文本,选择复制然后将其粘贴到另一个UITextField(或相同)中.

  • 退格键工作正常.

  • 它也让我输入符号和表情符号等.

  • 我唯一无法输入的是字符/字母和数字

  • 返回按钮不会触发textFieldShouldReturn

由于textFieldDidBeginEditing和textFieldDidEndEditing被触发,我认为我的委托设置很好,但我无法理解为什么我不能输入文本以及为什么不触发textFieldShouldReturn.

可能是相关的.

任何帮助表示赞赏.

iOS*_*DEV 0

您是否将其放入自定义类的“init”方法中?

尝试将这样的代码放入您的实现文件中...

@implementation CustomAlertClass <UITextFieldDelegate>

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

@end
Run Code Online (Sandbox Code Playgroud)