在ios7及以上系统中在UINavigationBar中添加UITextField或者UISearchbar时不显示输入光杆问题及解决

- (void)initSearchBar{
    _textSearch = [[UISearchTextFiled alloc] initWithFrame:CGRectMake(0, 7, ScreenWidth - 50, 30)];
    _textSearch.placeholder     = @"在此输入查找内容";
    _textSearch.leftView        = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_ssh"]];
    _textSearch.leftViewMode    = UITextFieldViewModeAlways;
    _textSearch.backgroundColor = [UIColor whiteColor];
    _textSearch.layer.masksToBounds  = YES;
    _textSearch.layer.cornerRadius   = 15;
    _textSearch.tintColor           = [UIColor blueColor];  //如果不加此句则在ios7以上系统不显示光标
    
    [_textSearch addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

    self.navigationItem.titleView   = _textSearch;
    
    UIBarButtonItem *cancelButton =[[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStylePlain target:self action:@selector(onCancel:)];
    NSDictionary *textAttr = @{NSFontAttributeName:[UIFont systemFontOfSize:20]};
    [cancelButton setTitleTextAttributes:textAttr forState:UIControlStateNormal];

    self.navigationItem.rightBarButtonItem  = cancelButton;
    

    [_textSearch becomeFirstResponder];

    
}

你可能感兴趣的:(iOS)