2

IB を使用して既存の iPad アプリケーションに UIToolBar を追加しました。次に、IB を使用して View Controller に接続し、接続が存在することを確認します。ただし、ボタンをクリックすると、View Controller 内の対応するコードが実行されません。

空のプロジェクトを開いて同じ手順を実行すると、すべてが期待どおりに機能します。

IBAction コードの実行を妨げている既存のプロジェクトの違いについて何か考えがあるかどうか興味がありますか?

開発には XCode 4.5.2 と iOS 6.0 (シミュレーター) を使用しています。

私は本当に困惑しているので、どんなアイデアでも大歓迎です!

4

1 に答える 1

4

コメントに記載されているように、ユーザーがフィールドを編集している場合にキーボードを閉じることができるように、ユーザーが背景をタップしたときにリッスンするためにこれを使用していた UITapGestureRecognizer が原因で、この問題が発生しました。

UITapGestureRecognizer はツールバーと競合し、ツールバー項目が選択されたときにコードが実行されないようにします。代わりに (私の場合)、タブ ジェスチャのリスナーにある「キーボードを閉じる」コードを実行します。

これを回避するために、メインのビューではなく、テキスト入力用のハウジング UIScrollView にジェスチャ認識機能を追加しました。

例えば:

これを置き換えました:

[self.view addGestureRecognizer:tap];

これとともに:

[scrollView addGestureRecognizer:tap];

(scrollView は、ストーリーボードの UIScrollView の IBOutlet として接続されています)

于 2013-10-21T08:34:02.920 に答える