UITextField *theLastNameTF = [[UITextField alloc]init];
theLastNameTF.borderStyle = UITextBorderStyleNone;
theLastNameTF.font = [UIFont fontWithName:@"Helvetica-neue" size:24.0];
theLastNameTF.textColor = [UIColor grayColor];
theLastNameTF.textAlignment = NSTextAlignmentLeft;
[theScrollView addSubview:theLastNameTF];
我正在使用上面的代码创建一个文本字段。我需要在文本字段下面显示一行,所以我在文本字段中添加了一个灰色的UILabel。
-(void)addLineToTextField:(UITextField *)theTextfield
{
UILabel *theSeparatorLine = [[UILabel alloc]initWithFrame:CGRectMake(0, theTextfield.frame.size.height-0.5, theTextfield.frame.size.width, 0.5)];
theSeparatorLine.frame = CGRectIntegral(theSeparatorLine.frame);
theSeparatorLine.autoresizingMask = UIViewAutoresizingFlexibleWidth;
theSeparatorLine.backgroundColor = kCS_LightGrayColor;
[theTextfield addSubview:theSeparatorLine];
theSeparatorLine = nil;
}
我在文本字段中遇到问题,在输入文本时,文本半可见,光标不向文本左侧移动。
请参考图片,我已输入" arun ... arun 123",正如预期的那样,光标应位于123的左侧,但光标不会进一步移动。
我该如何解决这个问题?
修改
此代码用于重新构建UI (在orientation方法更改方法中调用layoutViewForCurrentorientation())
-(void)layoutViewForCurrentorientation
{
if ([[UIApplication sharedApplication]statusBarOrientation] == UIInterfaceOrientationPortrait) {
[self potraitUI];
}
else
{
[self landscapeUI];
}
}
如果我删除了行textField.font = [UIFont fontWithName:@"Helvetica-neue" size:24.0];
。我的问题已解决,但我需要在textfield中使用更大的字体。
答案 0 :(得分:3)
我使用的是字体[UIFont fontWithName:@"Helvetica-neue" size:24.0]
,文字字段大小为25.我的UITextfield
高度为30,问题得到了解决。不知道实际原因但是有效。
答案 1 :(得分:1)
请设置文本框架
UITextField *theLastNameTF = [[UITextField alloc]initWithFrame:CGRectMake(50,50,250,30)];
我希望它可以帮到你。
答案 2 :(得分:1)
我在9.3中看到同样的问题。似乎是一个iOS错误。
当UITextField是第一个响应者时,UITextField包含一个包含输入视图的scrollview(UIFieldEditor)(_UIFieldEditorContentView, - [UITextField inputView]。)错误是输入视图的大小不正确。输入视图不够宽,因此scrollview的-contentSize也不正确。 UITextField尽可能向右滚动,但这还不够,因为输入视图太小了。
我的解决方法是重置文本字段的文本。您还可能需要一个标志来忽略委托回调:
_ignoreTextDelegate = TRUE;
NSString *text = textField.text;
textField.text = nil;
textField.text = text;
_ignoreTextDelegate = FALSE;
答案 3 :(得分:0)
试试这个
UITextField *theLastNameTF = [[UITextField alloc]initWithFrame:CGRectMake(20,50,250,30)];
theLastNameTF.borderStyle = UITextBorderStyleNone;
theLastNameTF.font = [UIFont fontWithName:kHelveticaneue size:15.0];
theLastNameTF.textColor = [UIColor grayColor];
theLastNameTF.textAlignment = NSTextAlignmentLeft;
[theScrollView addSubview:theLastNameTF];
并设置线框的y值应该与textField frame的值相关
-(void)addLineToTextField:(UITextField *)theTextfield
{
UILabel *theSeparatorLine = [[UILabel alloc]initWithFrame:CGRectMake(0, theTextfield.frame.origin.y + 0.5, theTextfield.frame.size.width, 0.5)];
theSeparatorLine.frame = CGRectIntegral(theSeparatorLine.frame);
theSeparatorLine.autoresizingMask = UIViewAutoresizingFlexibleWidth;
theSeparatorLine.backgroundColor = kCS_LightGrayColor;
[theTextfield addSubview:theSeparatorLine];
theSeparatorLine = nil;
}