我已将范围缩小到仅适用于 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 循环,所以 UITextField
的数量取决于调用循环的次数。
这些是我使用的委托(delegate)方法:
- (void)textFieldDidBeginEditing:(UITextField *)aTextField
{
self.activeField = aTextField;
}
- (void)textFieldDidEndEditing:(UITextField *)aTextField
{
self.activeField = nil;
}
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
activeField
是 View Controller 上的一个属性,用于确定哪个字段当前处于事件状态
我相信这是所有相关的代码
最佳答案
确保您在启动时正确设置窗口
你在打电话
[窗口 setRootViewController:someViewController];
如果你不这样做,这在 iOS6 中现在是一个错误......
[window makeKeyAndVisible];
这不是一个错误(忽略),而是把东西扔到奇怪的地方,似乎导致 UITextView
和 UITextField
不能正常工作。
如...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.viewController = [[[MyViewController alloc] initWithNibName:nil bundle:nil] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:self.viewController] autorelease];
[window setRootViewController:navigationController];
[window makeKeyAndVisible];
}
关于iphone - UITextField 不接受来自 IOS6 键盘的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916097/