以编程方式创建UITextField事件

时间:2011-02-07 02:04:20

标签: iphone uitableview event-handling uitextfield

我创建了一些以编程方式将文本字段添加到TableView中。我试图通过这样做来订阅这些textFields的TouchUpInside事件

UITextField *eTextField = [[UITextField alloc] initWithFrame:CGRectMake(110, 12, 145, 25)];
eTextField.delegate = self;
[eTextField addTarget:self action:@selector(showPicker)
forControlEvents:UIControlEventTouchUpInside];

showPicker是一个没有参数的IBAction。它永远不会被触发。我还有什么需要做的吗?

有什么我想念的吗? 提前致谢

3 个答案:

答案 0 :(得分:3)

不应该是[eTextField addTarget:self action:@selector(showPicker * *) 你也没有指定一个UIControlEvent。

所以:

[eTextField addTarget:self action:@selector(showPicker)

应该改为

[eTextField addTarget:self action:@selector(showPicker:) forControlEvents:UIControlEventEditingDidBegin];

答案 1 :(得分:1)

如果您要为文本字段而不是键盘显示选择器,则应将选择器选择器视图指定为文本字段的inputView

但是如果你想在用户触摸文本字段时触发一些方法,你应该覆盖 文本字段委托方法

  

textFieldDidBeginEditing

并调用resign first responder以避开键盘,然后编写自定义代码或方法调用。

答案 2 :(得分:0)

你可以试试这个......

1.在textFieldDidEndEditing文件中删除viewController.m。 请参阅以下示例代码:

-(BOOL)textFieldDidEndEditing:(UITextField*) tf{
 //your piece of code (goNext?)  
}

2.取出

[eTextField addTarget:self action:@selector(goNext) forControlEvents:UIControlEventEventEditingDidEnd];

来自你的代码。