2012-11-08 75 views
2

我想通過整合工具欄中的各種東西來整理我的UI,並且完全困惑。我使用Interface Builder而不是以編程方式構建控件,因爲我的UI非常簡單,並且不是特別動態。在界面生成器中創建的UIBarButtonItem不工作 - 困惑

我所做的那樣,到目前爲止:

  1. 添加一個空的工具欄。
  2. 將兩個先前存在的工作按鈕拖到工具欄上。他們將班級從UIButton 更改爲UIBarButtonItem,並且檢查員現在將其顯示爲沒有 已發送操作或參考出口,但之前的操作在視圖控制器中的出口 - 響應於水龍頭,設置按鈕的 標籤 - 仍然有效。
  3. 在工具欄中直接創建一個新的按鈕 。以正常方式通過ctrl-drag以 連接其動作&插座。檢查員顯示這個 按鈕的動作和插座已連接,這很好,但可悲的是他們都沒有工作。 單擊該按鈕不會調用該操作;設置標籤 該按鈕不會導致屏幕上發生任何事情,即使 我嘗試用setNeedsDisplay觸發工具欄。

我不確定接下來要嘗試什麼。谷歌搜索告訴我,我不是唯一一個通過Interface Bulder使用UIToolBar困難和困惑的人,但我還沒有找到解決我的確切問題的方法。

我不是特別想要通過編程創建我的整個GUI只是爲了整理幾個按鈕。在工具欄外創建界面生成器中的所有控件,讓它們連接起來並工作,然後將它們移動到工具欄中,大概也可以工作 - 但它會是一團糟,如果出現任何問題,我將依然不明智後來。

回答

2

你應該嘗試使用UIBarButtonItem而不是UIButton嗎?這個對我有用。

+0

啊,就這麼簡單。謝謝。由於我將現有的按鈕拖入工具欄,並且它們自動成爲UIBarButtonItems,所以我錯誤地得到了這樣的印象。 – AlanL

+0

很高興它有幫助。還要感謝讓我知道UIButton不應該放在UIToolbar上 – John

0

我有類似的問題。 您是否爲根視圖創建了額外的UITapGestureRecognizer? 也許類似於>當UITextView單擊其他位置時,resignFirstResponder對於所有UITextViews!

在我的情況下,在7.1上,額外的UITapGestureRecognizer阻止事件轉移到UIBarButtonItem的UIBoolBar內的IBAction。 IBAction是通過Ctrl + Drag在Storyboard上製作的。在它工作的8.1上是 。不是7.1

閱讀一些建議,以創建一個額外的UIView,並把所有的視覺元素注入額外的UIView除了UIToolBar