我将范围缩小到仅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
的数量取决于调用循环的次数。这些是我使用的委托方法:
- (void)textFieldDidBeginEditing:(UITextField *)aTextField
{
self.activeField = aTextField;
}
- (void)textFieldDidEndEditing:(UITextField *)aTextField
{
self.activeField = nil;
}
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
activeField
是视图控制器上的一个属性,用于确定当前哪个字段处于 Activity 状态我相信这是所有相关的代码
最佳答案
确保启动时正确设置了窗口
而且你在打电话[window 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];
}