【问题标题】:Add UITextField to title view of navigation item将 UITextField 添加到导航项的标题视图
【发布时间】:2014-07-26 22:30:37
【问题描述】:

如何将文本字段添加到导航项的标题视图并使其大小正确?

如果我使用这样的搜索栏执行此操作,效果很好,但我不知道如何让文本字段以与搜索栏相同的方式调整自身大小。

myViewController.navigationItem.titleView = [UISearchBar new];

【问题讨论】:

  • 顺便说一句,这对我有用:UITextField *tf = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, self.navigationController.navigationBar.frame.size.width, 21.0)]; self.navigationItem.titleView = tf; [tf becomeFirstResponder];

标签: ios objective-c ios7 uitextfield


【解决方案1】:

正如我的评论所建议的,尝试以下,在我看来这就是你所追求的。

UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, self.navigationController.navigationBar.frame.size.width, 21.0)];

self.navigationItem.titleView = textField;

[textField becomeFirstResponder];

【讨论】:

  • 这对我不起作用。文本字段的宽度只有几个像素。我正在以编程方式创建所有内容。
  • 正如你在上面看到的,这都是程序化的,不是吗?
  • 好的,我试图从应用程序委托中执行此操作。如果您从视图控制器中的 -viewDidLoad 执行此操作,则此操作有效。
  • 是的,这通常是你做事的方式
  • @BerryBlue 我很好奇你最初把它放在哪里
【解决方案2】:
Class: ViewController: UISearchBarDelegate {

let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
navigationItem.searchController?.searchBar.delegate = self
navigationItem.searchController?.obscuresBackgroundDuringPresentation = false
navigationItem.searchController?.hidesNavigationBarDuringPresentation = false
navigationItem.searchController?.searchBar.placeholder = "Enter text here..."

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多