UINavigationItem.titleView canBecomeFirstResponder?

时间:2012-06-12 12:42:48

标签: iphone ios uinavigationitem titleview

我在UINavigationItem.titleView中添加了自定义UITextField。但它不是成为第一个响应者。为什么这样?

- (void) viewDidLoad
{
    [super viewDidLoad];
    UITextField *titleTextField = [[UITextField alloc] initWithFrame:CGRectMake(65.0f, 8.0f, 160.0f, 30.0f)];
    titleTextField.text = @"Untitled";
    titleTextField.textAlignment = UITextAlignmentCenter;
    titleTextField.textColor = [UIColor whiteColor];
    titleTextField.font = [UIFont boldSystemFontOfSize:20.0f];
    //titleTextField.backgroundColor = [UIColor redColor];
    titleTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    titleTextField.delegate = self;
    titleTextField.tag = 2;
    self.navigationItem.titleView = titleTextField;
    [titleTextField becomeFirstResponder]
}

请建议。

先谢谢, Bharathi。

3 个答案:

答案 0 :(得分:0)

尝试使用[self.navigationItem.titleView becomeFirstResponder];代替[titleTextField becomeFirstResponder];

答案 1 :(得分:0)

您还需要符合UITextFieldDelegate协议。我认为你没有遵守协议。

<。>在.h文件中(例如)

@interface RootViewController : UITableViewController<UITextFieldDelegate>

@end

答案 2 :(得分:0)

试试这个:

[titleTextField becomeFirstResponder];

然后:

self.navigationItem.titleView = titleTextField;

告诉我是否有运气......