我将范围缩小到仅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];
这不是一个错误(可以忽略),但是将东西扔到了一块怪异的土地上,似乎导致UITextViewUITextField无法正常工作。

如...

- (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];

}

10-07 19:49
查看更多