2

我试图通过在工具栏中整合各种东西来整理我的 UI,我完全感到困惑。我正在使用 Interface Builder 而不是以编程方式构建控件,因为我的 UI 相当简单而且不是特别动态。

到目前为止我做了什么:

  1. 添加了一个空的工具栏。
  2. 将两个先前存在且正在工作的按钮拖到工具栏上。他们将他们的类从 UIButton 更改为 UIBarButtonItem,检查器现在显示它们没有发送操作或引用插座,但视图控制器中的前一个操作和插座 - 响应点击,设置按钮的标签 - 仍然有效。
  3. 直接在工具栏中创建了一个新按钮。以正常方式通过 ctrl-drag 连接其动作和出口。检查器将此按钮的操作和插座显示为已连接,这很好,但遗憾的是它们都不起作用。单击按钮不会调用操作;设置按钮的标签不会导致屏幕上发生任何事情,即使在我尝试使用 setNeedsDisplay 刺激工具栏之后也是如此。

我不确定下一步该尝试什么。谷歌搜索告诉我,我不是唯一一个发现通过 Interface Bulder 使用 UIToolBar 困难和困惑的人,但我还没有找到解决我确切问题的方法。

我不想仅仅为了整理几个按钮而以编程方式创建我的整个 GUI。在工具栏外的 Interface Builder 中创建所有控件,将它们连接起来并工作,然后将它们移动到工具栏中也可能会起作用 - 但这将是一个杂项,如果出现任何问题,我仍然不会更明智之后。

4

2 回答 2

2

您是否应该尝试使用 UIBarButtonItem 而不是 UIButton?这个对我有用。

于 2012-11-08T17:13:30.760 回答
0

我有一个类似的问题。您是否为根视图创建了额外的 UITapGestureRecognizer ?也许像 > 当点击 UITextView 以外的其他地方时,所有 UITextViews 的 resignFirstResponder !

就我而言,在 7.1 上,额外的 UITapGestureRecognizer 阻止了将事件传输到 UIToolBar 内的 UIBarButtonItem 的 IBAction。IBAction 是通过 Ctrl+Drag 在 Storyboard 上制作的。在 8.1 上它正在工作。不在 7.1 上

阅读一些建议以创建额外的 UIView 并将所有视觉元素放入该额外的 UIView 中,除了 UIToolBar

于 2014-11-06T13:25:32.990 回答