我创建了一些以编程方式将文本字段添加到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。它永远不会被触发。我还有什么需要做的吗?
有什么我想念的吗? 提前致谢
答案 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];
来自你的代码。