InputAccessoryView 的子视图工具栏按钮不起作用

Posted

技术标签:

【中文标题】InputAccessoryView 的子视图工具栏按钮不起作用【英文标题】:InputAccessoryView's subview toolbar buttons not working 【发布时间】:2019-04-20 12:02:10 【问题描述】:

我尝试向 Inputaccessoryview 添加两个不同的工具栏。但是 。

我尝试创建 2 个单独的 uitoolbar 并将其中一个添加为 inputaccessoryview。然后我添加了第二个工具栏作为子视图。它看起来很好,但按钮不起作用,它只是在里面看。

这是我的代码

        let entryToolbar = UIToolbar(frame:CGRect(x: 0, y: -50, width: UIScreen.main.bounds.width, height: 50))
        entryToolbar.barStyle = Theme.barStyle!
        entryToolbar.tintColor = Theme.userColor
        let sendToolbar = UIToolbar(frame:CGRect(x: 0, y: -0, width: UIScreen.main.bounds.width, height: 50))
        sendToolbar.barStyle = Theme.barStyle!
        sendToolbar.tintColor = Theme.userColor

        sendToolbar.items = [
            UIBarButtonItem(title: "gönder", style: .plain, target: self, action: #selector(gonder)),
            UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil),
            UIBarButtonItem(title: "vazgeç", style: .plain, target: self, action: #selector(vazgec))]
        entryToolbar.items = [
            UIBarButtonItem(title: "(bkz:)", style: .plain, target: self, action: #selector(bkz)),
            UIBarButtonItem(title: "hede", style: .plain, target: self, action: #selector(hede)),
            UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil),
            UIBarButtonItem(title: "*", style: .plain, target: self, action: #selector(gizlihede)),
            UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil),
            UIBarButtonItem(title: "-spoiler-", style: .plain, target: self, action: #selector(spoiler)),
            UIBarButtonItem(title: "http://", style: .plain, target: self, action: #selector(link))]
        sendToolbar.sizeToFit()
        sendToolbar.addSubview(entryToolbar)
        entryGir.inputAccessoryView = sendToolbar

如何将多工具栏添加为 inputaccessoryview 以及如何使用此按钮?

我的视图控制器有一个视图。 https://i.imgur.com/0Uqo9fL.png

【问题讨论】:

一个工具栏不能有另一个工具栏作为子视图。工具栏根本不能有任何子视图。 那如何添加多工具栏作为inputaccessoryview? 你不能。但是,您在这里根本不需要使用工具栏。 【参考方案1】:

您不能向UIToolbar 添加任何子视图。要使工具栏如提供的图像所示,您必须做的是:创建扩展 UIView 的自定义类,通过代码配置该自定义 UIView UI 或从 NIB 加载它并编写按钮和其他的所有控制逻辑该自定义类实现中的 UI 元素。然后只需使用该自定义UIView 作为您的inputAccessoryView


您可以获得更多关于从哪里开始自定义inputAccessoryView 实现here 的信息。

【讨论】:

我明白了。谢谢,我会的!

以上是关于InputAccessoryView 的子视图工具栏按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

inputAccessoryView 必须是最顶层的视图吗?

在 inputAccessoryView 上方插入子视图

当 inputAccessoryView 出现时移动集合视图聊天

InputAccessoryView 使用键盘交互显示/隐藏上下移动表格视图

如何在 inputAccessoryView [Swift] 中实现滚动视图

带有在 IB 中创建的自定义视图的 InputAccessoryView