新屏幕上的UITextField将不接受输入

时间:2013-04-12 17:39:29

标签: ios objective-c uitextfield uitextfielddelegate

我正在修改Xcode中现有的iPad应用程序。该应用程序非常简单,包含4个收集信息并将其发送到Web服务的屏幕。

我正在尝试添加一个包含四个文本字段的附加屏幕。没有文本字段将接受任何输入。我已经浏览了视图层次结构并确认所有视图都启用了用户交互,并且没有配置多点触控。

我已将UITextFieldDelegate添加到视图控制器,并已将UITextField委托连接到视图控制器。

我在textFieldShouldBeginEditing中添加了一个NSLog,每当我触摸该字段时它都会在控制台中显示。但它没有显示光标,也没有显示键盘。

只是因为我以为我可能会失去理智,我用一个只有一个文本字段的空白视图控制器替换了整个屏幕,它仍然不接受任何输入。

此外,为了确保我没有失去对现实的控制,我创建了一个新项目,其中包含一个带有一个文本字段的视图,并且它按预期工作。

我真的不知道从哪里开始。我的应用程序中其他屏幕上的所有文本字段都正常工作。这只是为了我的生活,我无法在新的屏幕上显示文本字段。

HELP !!

标记

//
//  TestViewController.h
//

#import <UIKit/UIKit.h>

@interface TestViewController : UIViewController <UITextFieldDelegate>

@end

并且

//
//  TestViewController.m
//

#import "TestViewController.h"

@interface TestViewController ()

@end

@implementation TestViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    NSLog(@"textFieldShouldBeginEditing");
    return YES;
}

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    NSLog(@"textFieldShouldEndEditing");
    return YES;
}

-(BOOL)textFieldShouldReturn:(UITextField*)textField{
    NSLog(@"textFieldShouldEndEditing");
    return YES;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

2 个答案:

答案 0 :(得分:1)

我最终从头开始创建一个新项目,首先布置我的所有屏幕和UITextFields,将所有内容连接到代码并首先进行测试。然后我回去并添加了其余的图形元素。

我不知道是什么导致了原始问题。我会把它写成Xcode错误。

答案 1 :(得分:0)

您尝试手动将 textfield.delegate = self 添加到该控制器中的viewDidLoadviewWillAppear方法。 希望这会有所帮助。