我在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。
答案 0 :(得分:0)
尝试使用[self.navigationItem.titleView becomeFirstResponder];
代替[titleTextField becomeFirstResponder];
答案 1 :(得分:0)
您还需要符合UITextFieldDelegate
协议。我认为你没有遵守协议。
@interface RootViewController : UITableViewController<UITextFieldDelegate>
@end
答案 2 :(得分:0)
试试这个:
[titleTextField becomeFirstResponder];
然后:
self.navigationItem.titleView = titleTextField;
告诉我是否有运气......