質問

私は現在、このように構成されたアプリに取り組んでいます:

私たちは、アプリケーションのすべてのタッチイベントを処理MainViewControllerを呼び出しますビューコントローラを持っています。 MainViewControllerは、インスタンス変数、canvasViewと呼ばれるビューとして持っています。 canvasViewがhiddenTextView呼ばUITextViewとして持っています。

他の不可視のビューとをTheresのUITextViewがタッチを登録する最初のではないので、そのような

どのように私は、この構成でタッチを登録するUITextViewを得るのですか?具体的には(実際には日本語の漢字の選択のために、私は同様の機構を想定)autoCorectionボックスから選択を行います。

私が試してみた:

[canvasView.hiddenTextView touchesBegan:withEventに触れる:イベント

MainViewControllerのtouchesbegan方法から。私は、touchesBeganのためにこれを行って移動し、終了したしました。

私はそれが実際に私が試した50かそこらの実行のうちの1のために働いていたと思うが、私は変更のか分かりません。

私はこの仕事を得ることができる方法上の任意のアイデア?

役に立ちましたか?

解決

[canvasView.hiddenTextView becomeFirstResponder];

おそらく、あなたがやりたいだろう。

iPhone上のレスポンダチェーンは少しトリッキーなものです。私はそれがどの触れ、そこからの入力を受け取るべき制御するよう、それは完全に明確なのです任意のインスタンスになるように、コントロールの重複を避けるために、通常は簡単です見つけます。

あなたがコントロールの多くを重ね、そしてしばしばものは非表示または表示されている間のスイッチングしている場合は、

、それはあなただけUIViewControllerの複数のサブクラスを実装したい場合があります良い兆候だ、とアウトにスワップそれらの代わりに切り替えると、コントロール。別のオプションは、UIViewのカスタムサブクラスを作成し、inとoutの代わりに、それらを交換することである - 。それによって私が意味する、実際にサブビュー(それを隠していない)、そして新しいものを追加することから、古いものを削除する

表示/非表示は、サブクラス化よりも、単に多くの方が簡単であるとき、

もちろん、いくつかの時間があります。

私はそれが役に立てば幸い。参考:<のhref = "http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIResponder_Class/Reference/Reference.html#//apple_ref/occ/cl/UIResponder" のrel = "nofollowをnoreferrer 「> AppleのUIResponderドキュメントはを。 (任意UIViewController又はUIViewUIResponderのサブクラスであることに留意されたい。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top