Ios4 UITextField:can';键入文本,但微笑、复制/粘贴和退格都可以

Ios4 UITextField:can';键入文本,但微笑、复制/粘贴和退格都可以,ios4,uitableview,uitextfield,xcode4.3,uitextfielddelegate,Ios4,Uitableview,Uitextfield,Xcode4.3,Uitextfielddelegate,我觉得这很奇怪,我创建了自己的类,继承自UIAlertView。在这个类中,我添加了一个UITableView作为子视图,并且单元格包含一个UILabel和一个UITextField 类实现:UITableViewDelegate、UITableViewDataSource和UITextFieldDelegate 在cellForRowAtIndexPath中,每个cell.uiTxtField.delegate都设置为self 在模拟器和真实的iPhone设备上都会发生以下情况: 当我在UI

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

类实现:UITableViewDelegate、UITableViewDataSource和UITextFieldDelegate

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

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

  • 当我在UITextField中设置指针/手指时,键盘弹出并显示 textFieldDidBeginEditing被触发,这很好,正如预期的那样

  • 当我离开UITextField时,textfielddidediting被触发, 这也很好,正如预期的那样

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

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

  • 退格效果良好

  • 它还让我输入符号和微笑等

  • 我唯一不能输入的是字符/字母和数字

  • 返回按钮不会触发文本字段应返回

由于触发了textFieldDidBeginEditing和textFieldDidEndEditing,我假设我的代理设置很好,但我不明白为什么我不能键入文本,为什么没有触发textFieldShouldReturn

可能有关联

非常感谢您的帮助。

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

尝试在实现文件中放入这样的代码

@implementation CustomAlertClass <UITextFieldDelegate>

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

@end
@实现CustomAlertClass
-(id)initWithFrame:(CGRect)帧
{
self=[super initWithFrame:frame];
如果(自我){
//
self.YourTextField.delegate=self;
}
回归自我;
}
@结束

简短回答:确保没有任何代码干扰UITextField上的“编辑”属性

我有同样的症状,我确实正确设置了委托,并且调用了TextFieldDidBeginEdit和TextFieldDidEndEdit,但是没有调用textFieldShouldReturn和shouldChangeCharactersInRange。我也不能键入任何字符,但我可以将粘贴复制到文本字段中。在我的例子中,我还碰巧将文本字段放在UITableView的单元格中。我的情况略有不同,删除按钮不起作用


我出错的地方是,我没有在我的单元格中使用原始的UITextField,我有自己的UITextField子类。我的子类有一个属性“isEditing”,我在UITextFieldDelegate方法中修改了该属性,并用它来确定在选择文本字段时如何滚动表视图。这将重写UITextField上的“IsEdit”方法,并将其用作UITextField“editing”属性的getter。一旦我摆脱了我的子类isEditing属性,一切都会按预期进行。

我也有同样的问题。.任何人都知道解决方案,请帮助它