UITextField leftView

时间:2010-01-04 02:57:42

标签: iphone uitextfield

是否可以使用leftView设置UITextField,这样如果用户点击UITextField键盘会显示,但是如果他们点击leftView中的图标,则会调用另一个方法(即显示UIPickerview的方法)?

3 个答案:

答案 0 :(得分:20)

您是否检查过leftFieldViewMode设置为“从不

以外的其他内容”
[textField setLeftViewMode:UITextFieldViewModeAlways];

答案 1 :(得分:8)

像普通人一样实例化按钮

 UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];

 [btn setFrame:CGRectMake(0,0,30,30)];

 [btn setTitle:@"title" forState:UIControlStateNormal];

[btn addTarget:self action:@selector(BtnClick) forControlEvents:UIControlEventTouchUpInside];

像往常一样实例化文本字段

 UITextField *txtfield1=[[UITextField alloc]initWithFrame:CGRectMake(10, 10,300,30)];

[txtfield1 setBackgroundColor:[UIColor grayColor]];

[txtfield1 setPlaceholder:@" Enter"];

在左侧设置视图(右侧视图也可用)

[txtfield1 setLeftView:btn];

如果您希望视图始终显示,那么下面的代码就可以了

[txtfield1 setLeftViewMode:UITextFieldViewModeAlways];

如果您希望视图显示从不

[txtfield1 setLeftViewMode:UITextFieldViewModeNever];

如果您希望视图显示文本字段是否未编辑,则在

下面
[txtfield1 setLeftViewMode:UITextFieldViewModeUnlessEditing];

如果您希望视图显示文本字段是否已编辑,则

[txtfield1 setLeftViewMode:UITextFieldViewModeWhileEditing];

按钮点击事件并弹出

-(void)BtnClick
{
  //Usual pop over coding goes here
}

答案 2 :(得分:2)

您是否尝试过使用UIButton执行此任务?从leftView属性的文档:

  

如果您的叠加视图不重叠   它收到的任何其他兄弟观点   像任何其他视图一样触摸事件。如果   你为视图指定一个控件,   控制跟踪并发送动作   照常。如果叠加视图重叠   然而,清晰的按钮清晰   按钮始终优先于   接收活动。

因此,创建一个UIButton实例,根据需要配置其外观和操作,然后将其设置为leftView属性。