【问题标题】:Add UITextField to UIToolbar将 UITextField 添加到 UIToolbar
【发布时间】:2011-10-21 22:32:12
【问题描述】:

我尝试将 UITextField 添加到 UIToolbar,但出现运行时错误,原因如下:[UITextField view]: unrecognized selector sent to instance ...

[toolbar setItems:[NSArray arrayWithObjects:textField, nil]];

toolbar 是 UIToolbar 的一个实例,textField 是 UITextField 的一个实例。

【问题讨论】:

    标签: objective-c ios uitextfield uitoolbar


    【解决方案1】:

    UIToolbaritems 必须是 UIBarButtonItem 类型。使用initWithCustomView: 创建一个包含您的文本字段的工具栏项。

    UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField];
    toolbar.items = @[textFieldItem];
    

    【讨论】:

      【解决方案2】:

      上面 omz 的回答在 2017 年仍然回答了我的问题,但这里是 iOS 10 和 Swift 3 的更新。我将创建一个UIToolbar,它的左右两侧有一个UITextField.flexibleSpace,以使工具栏中的文本字段居中。

      let toolbar = UIToolbar()
      let flexibleBarButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil)
      let textfield = UITextField()
      let textfieldBarButton = UIBarButtonItem.init(customView: textfield)
      // UIToolbar expects an array of UIBarButtonItems:
      toolbar.items = [flexibleBarButton, textfieldBarButton, flexibleBarButton]
      view.addSubview(toolbar)
      

      您当然可以缩短上面的代码并添加UIToolbar 的框架等,但上面应该是一个更“清晰”的示例,专门将UITextField 添加为UIBarButtonItem

      我希望这会有所帮助!

      【讨论】:

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