将 UITextField 添加到 UIToolbar

发布于 2024-11-28 11:50:46 字数 233 浏览 1 评论 0原文

我尝试将 UITextField 添加到 UIToolbar,但出现运行时错误,原因如下: [UITextField view]: 无法识别的选择器发送到实例...

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

工具栏是 UIToolbar 的实例,textField 是 UITextField 的实例。

I tried this to add UITextField to a UIToolbar but got a run-time error with reason as: [UITextField view]: unrecognized selector sent to instance ...

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

toolbar is an instance of UIToolbar and textField is an instance of UITextField.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耳根太软 2024-12-05 11:50:46

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

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

The items of a UIToolbar have to be of type UIBarButtonItem. Use initWithCustomView: to create a toolbar item that contains your text field.

UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField];
toolbar.items = @[textFieldItem];
国产ˉ祖宗 2024-12-05 11:50:46

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。

我希望这有帮助!

omz's answer above still answered my question in 2017 but here is an update to iOS 10 and Swift 3. I am going to create a UIToolbar, which has a UITextField and .flexibleSpace on its left and right sides to center the text field within the toolbar.

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)

You can of course shorten the above code and add the UIToolbar's frame etc. but the above should be a more "legible" example of specifically adding a UITextField as a UIBarButtonItem.

I hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文