【发布时间】:2012-10-16 13:45:21
【问题描述】:
我已将范围缩小到仅 IOS6 设备。
原问题:
我到处搜索并尝试了所有方法,但我根本无法弄清楚!
我有一个UITextField。当它被选中时,键盘向上滑动并且光标开始在文本字段上闪烁。当我点击键盘上的按钮时,一切正常,键响应并且光标停止闪烁。唯一的问题是文本没有放入文本字段!但是,它确实接受来自表情符号键盘的输入。任何帮助将不胜感激!
UITextField 是这样创建的:
UITextField *userInput = [[UITextField alloc] initWithFrame:CGRectMake(10, yPos, controlWidth, 26)];
yPos += 32;
[userInput setText:[prompt defaultValue]];
[userInput setPlaceholder:[prompt helpText]];
[userInput setBorderStyle:UITextBorderStyleRoundedRect];
[userInput setClearButtonMode:UITextFieldViewModeWhileEditing];
[userInput setFont:[UIFont fontWithName:@"Helvetica" size:18]];
[userInput setAdjustsFontSizeToFitWidth:YES];
[userInput setMinimumFontSize:10];
[userInput setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
[userInput setDelegate:self];
[self.scrollView addSubview:userInput];
[self.promptControls addObject:userInput];
[userInput release];
这是一个 for 循环,所以UITextFields 的数量取决于循环被调用的次数。
这些是我使用的委托方法:
- (void)textFieldDidBeginEditing:(UITextField *)aTextField
{
self.activeField = aTextField;
}
- (void)textFieldDidEndEditing:(UITextField *)aTextField
{
self.activeField = nil;
}
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
activeField 是视图控制器上的一个属性,仅用于确定哪个字段当前处于活动状态
我相信这就是所有相关代码
【问题讨论】:
-
光标不应停止闪烁。如果是这样,您的程序会以某种方式停止(如果它没有彻底崩溃,它可能会陷入无限循环)。
-
当你输入文本时它会停止闪烁,然后在你停止时恢复
-
尝试注释掉
initWithFrame:和setDelegate之间的每一行。行为是否改变?如果您还注释掉委托行怎么办?无论如何,您发布的代码似乎都不是罪魁祸首。这是否同时发生在设备和模拟器中? -
尝试增加文本字段的宽度和高度,或减小字体大小。
-
光标不动。我试着评论你所说的,行为是完全一样的。显然这只发生在 iPad 上,但在 iPhone 上它可以工作
标签: iphone ios ipad uitextfield