2

ツールバーにさまざまなものを統合してUIを整理しようとしていますが、完全に混乱しています。私の UI はかなり単純で特に動的ではないため、プログラムでコントロールを作成するのではなく、Interface Builder を使用しています。

私がこれまでにしたこと:

  1. 空のツールバーを追加しました。
  2. 以前に存在し、機能していた 2 つのボタンをツールバーにドラッグしました。彼らはクラスを UIButton から UIBarButtonItem に変更し、インスペクターには送信済みアクションまたは参照アウトレットがないように表示されるようになりましたが、View Controller の以前のアクションとアウトレット (タップに応答し、ボタンのラベルを設定) は引き続き機能します。
  3. ツールバーに直接新しいボタンを作成しました。通常の方法で ctrl を押しながらドラッグして、アクションとアウトレットを接続します。インスペクターは、このボタンのアクションとアウトレットを接続済みとして表示します。これは素晴らしいことですが、残念ながらどちらも機能しません。ボタンをクリックしてもアクションは呼び出されません。ボタンのラベルを設定しても、setNeedsDisplay を使用してツールバーを押してみた後でも、画面上で何も起こりません。

次に何を試せばよいかわかりません。グーグルは、Interface Bulder を介して UIToolBar を使用するのが難しくて混乱しているのは私だけではないことを示していますが、正確な問題の解決策は見つかりませんでした。

いくつかのボタンを整理するためだけに、GUI 全体をプログラムで作成することに頼りたくはありません。ツールバーの外側に Interface Builder ですべてのコントロールを作成し、それらを配線して機能させてから、それらをツールバーに移動することもおそらく機能しますが、それは面倒なことであり、何か問題が発生した場合はまだ賢明ではありません後で。

4

2 に答える 2

2

UIButton の代わりに UIBarButtonItem を使用してみてください。わたしにはできる。

于 2012-11-08T17:13:30.760 に答える
0

同様の問題がありました。ルート ビュー用に追加の UITapGestureRecognizer を作成しましたか? > UITextView 以外の場所がクリックされた場合、すべての UITextViews に対して rejectFirstResponder !

私の場合、7.1 では、余分な UITapGestureRecognizer が、UIToolBar 内にある UIBarButtonItem の IBAction へのイベントの転送を妨げていました。Ctrl+ドラッグでストーリーボードにIBActionを作成しました。8.1では機能していました。7.1 ではありません

追加の UIView を作成し、UIToolBar を除くすべてのビジュアル要素をその追加の UIView に配置するためのいくつかの提案をお読みください。

于 2014-11-06T13:25:32.990 に答える