gpt4 book ai didi

objective-c - UITextField -- 为 leftView 添加 UIView - 无法获得焦点

转载 作者:可可西里 更新时间:2023-11-01 06:25:55 26 4
gpt4 key购买 nike

我的应用程序中的 UITextFields 定义了占位符文本(在 Interface Builder 中),当我点击占位符文本占据的区域时,我无法使这些字段获得焦点(即显示键盘并允许编辑)。如果我点击占位符文本区域之外的文本字段(尽管仍在文本文件本身的范围内),它会正常运行(即弹出键盘,我可以编辑文本字段的内容)。我该如何解决这个问题?

谢谢。

编辑 1

好的,我想我明白了。我还为这些 UITextFields 的“leftView”属性设置了一个空白 View 。如果我删除它,您可以触摸占位符文本区域中的 UITextFields,它会按预期使用react;不过,我需要 leftView 的这个 View 。如果你把这个 spacer view 的背景颜色改成红色,你会发现它根本不碍事,所以我不知道哪里出了问题。

为什么这段代码会导致这个问题?

谢谢。

+(UIView*)getTextFieldLeftSpacerViewWithBackgroundColor:(UIColor*)backgroundColor andHeight:(CGFloat)height
{
UIView *leftWrapper = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 8.0f, height)];
leftWrapper.autoresizingMask = UIViewAutoresizingNone;
[leftWrapper setOpaque:YES];
if(backgroundColor){leftWrapper.backgroundColor = backgroundColor;}
else{leftWrapper.backgroundColor = [UIColor clearColor];}
return [leftWrapper autorelease];
}

+(void)setTextFieldLeftSpacerForTextFieled:(UITextField*)textField
{
if(textField)
{
UIView *spacer = [MYViewController getTextFieldLeftSpacerViewWithBackgroundColor:nil andHeight:textField.bounds.size.height];
textField.leftView = spacer;
textField.leftViewMode = UITextFieldViewModeAlways;
}
}

最佳答案

刚遇到同样的问题,不想子类化,只好使用:

leftWrapper.userInteractionEnabled = NO;

关于objective-c - UITextField -- 为 leftView 添加 UIView - 无法获得焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com