左视图中的 UITextField 和点击手势
Posted
技术标签:
【中文标题】左视图中的 UITextField 和点击手势【英文标题】:UITextField and tap gesture in leftView 【发布时间】:2015-06-01 14:03:06 【问题描述】:我在 textField 的 leftView 上有一个图标,我想向它添加点击手势。这是我的代码:
if (!textField.leftView)
UIImageView *infoImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 30, 18)];
infoImage.image = [UIImage imageNamed:@"info"];
infoImage.contentMode = UIViewContentModeCenter;
textField.leftView = infoImage;
textField.leftViewMode = UITextFieldViewModeAlways;
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showErrorMessage:)];
tapRecognizer.numberOfTapsRequired = 1;
[infoImage addGestureRecognizer:tapRecognizer];
当用户点击左视图上的图像没有发生任何事情并且showErrorMessage
没有被调用时的问题。
更新
通过在 infoImage 上启用 userInteraction 解决了点击问题。
但现在我在我的节目errorMessage
的第二行得到[UITapGestureRecognizer tag]: unrecognized selector sent to instance
:
-(void)showErrorMessage:(id)sender
UIImageView *icon = (UIImageView *)sender;
NSString *key = [@(icon.tag) stringValue];
NSLog(@"%@", [_errorDictionary objectForKey:key]);
【问题讨论】:
infoImage. userInteractionEnabled = YES
?
Tap detection not working on UIImageView的可能重复
发件人不是imageView
,是tapGestureRecognizer
...
@Misha 我这样设置标签infoImage.tag = textField.tag;
问题是埃米利奥提到的
【参考方案1】:
缺少infoImage.userInteractionEnabled = YES;
【讨论】:
【参考方案2】:您必须将图像的属性 userInteractionEnabled 设置为 TRUE
【讨论】:
以上是关于左视图中的 UITextField 和点击手势的主要内容,如果未能解决你的问题,请参考以下文章
当 pickerView 出现时 UITextField 中的文本向左移动
ViewDidLoad 中 UITextField 的圆角只影响左角