1

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

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

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

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

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

此外,为了确保我不会失去对现实的把握,我创建了一个新项目,该项目由一个视图和一个文本字段组成,它确实按预期工作。

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

帮助!!

标记

//
//  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
4

2 回答 2

1

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

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

于 2013-04-14T01:10:46.190 回答
0

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

于 2013-04-12T18:06:38.693 回答