0

我想创建一个短信页面,并希望在页面加载时看到键盘。这就是我所拥有的,这是行不通的。你能找到我做错了什么吗?

在我的头文件中:

@interface taskViewController : ViewController
@property (nonatomic, retain) IBOutlet UITextField *taskDescription;

    - (void) viewWillAppear:(BOOL)animated;

@end

在我的 .m 文件中:

#import "taskViewController.h"

@interface taskViewController ()
@end

@implementation taskViewController
    @synthesize taskDescription = _taskDescription;

    - (void) viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [_taskDescription becomeFirstResponder];
 }
@end
4

2 回答 2

0

尝试添加

[self.view addSubview:_taskDescription];

在调用 UIResponder 之前。正如 Apple 在 UIResponder 参考中所说,必须在调用 UIResponder 之前将对象添加到视图层次结构中。

所以你的 -viewWillAppear: 方法将是:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self.view addSubview:_taskDescription];
    [_taskDescription becomeFirstResponder];
}

UIResponder 参考中的更多信息

于 2014-03-23T10:56:30.593 回答
-1

viewWillAppear:当时tackDescription显然还没有满载而归nil

我的建议是将呼叫转移[self.taskDescription becomeFirstResponder]viewDidLoad

viewDidLoad您可以确定整个视图已加载,并且所有内容都已正确添加。

于 2014-03-23T10:52:04.820 回答