問題タブ [uiresponder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
883 参照

iphone - UIView はファーストレスポンダーのステータスを奪います

UITableViewをUIScrollViewに配置したときの状況を想像してみてください。テーブル ビューをタップして垂直方向の移動を開始すると、UITableViewがファーストレスポンダーになり、垂直方向にスクロールします。しかし、指を水平に動かすと、 UIScrollViewがファーストレスポンダーになり、水平にスクロールします。

同様の状況がありますが、UIScrollView の代わりに、(void)touchesMoved:イベントをインターセプトして移動する単純な UIView オブジェクトがあります (ちょっと自作の ScrollView)。

しかし、UIScrollViewが行うのと同じトリックをどのように行うことができます?

前もって感謝します!!!

0 投票する
2 に答える
906 参照

iphone - touchesBegan 内でアニメーション化すると、タッチが失われる

画面に 4 つの UIView を配置し、タッチすると背景色をアニメーション化し、タッチが終了すると元に戻すようにしたいと考えています。

残念ながら、このアニメーションを touchesBegan で実行すると、アニメーションの完了後にタッチが終了しない限り、touchesEnded は起動しません。これは、アニメーション中にタッチのために touchesEnded が失われることを意味します。

さらに、UIView をすばやくヒットしても、複数の touchesBegan 呼び出しは発生しません。アニメーション (最初のタッチで生成) が完了するまで、新しいタッチは受信されないようです。

すべてのタッチにアニメーションで応答するにはどうすればよいですか? 私は実際には、新しいタッチごとに前のアニメーションを中断して、最初からやり直したいと思っています。

0 投票する
10 に答える
66143 参照

objective-c - UIGestureRecognizerは、タッチイベントを処理するためのサブビューをブロックします

私はこれがどのように正しい方法で行われるかを理解しようとしています。私は状況を描写しようとしました: ここに画像の説明を入力してください

UITableViewのサブビューとしてを追加していUIViewます。はUIViewタップとに反応しますが、そうするとpinchGestureRecognizer、テーブルビューはこれらの2つのジェスチャに反応しなくなります(スワイプには反応します)。

私はそれを次のコードで動作させるようにしましたが、それは明らかに良い解決策ではなく、より良い方法があると確信しています。これはUIView(スーパービュー)に配置されます:

0 投票する
2 に答える
944 参照

objective-c - サブビューからココア、UIResponderのスーパービューにメッセージを送信しますか?

タッチセンシティブなこれらすべてのサブビューがあります。サブビューからスーパービューにメッセージを送信して、ユーザーがそれを選択したことを伝えたいので、スーパービューはコントローラーの残りの部分と通信できます。

サブビューとコントローラー、サブビュー >> スーパービュー >> コントローラーの間で通信できません

おそらくこれを達成するためにUIResponderを使用しますか?

0 投票する
1 に答える
600 参照

iphone - ResignFirstResponder は、iPad でカスタム キーボードを閉じることができません。なんで?

カスタム キーボードを作成し、inputView プロパティを使用してそれを UITextField に関連付けました。カスタム キーボードの「閉じる」ボタンが押されたら、テキスト フィールドで rejectFirstReponder を呼び出します。

これを別のIBアウトレットの問題として却下する前に、そうではありません. テキスト フィールド ポインターは有効です。実際、resignFirstResponder を呼び出した後、キャレットが消えます。これは、resignFirstResponder が実際に機能していることを証明しています。カスタムキーボードが隠れていないだけです。理由はありますか?

カスタム キーボードを非表示にするには、カスタム キーボードで何か特別なことをする必要がありますか?

0 投票する
1 に答える
1694 参照

iphone - UIResponder - didBecomeFirstResponder?

is there any way to get notified when e.g. a UITextView becomes first responder? I'm currently subclassing & overriding - (BOOL)becomeFirstResponder but the problem is that this happens while the view becomes first responder, not after it.

I have also tried KVC, but it doesn't work:

What technique should I use?

0 投票する
2 に答える
12574 参照

iphone - ドキュメントを表示するときにコピー/貼り付けと選択長方形のないUIWebView

私のアプリでは、UIWebViewオブジェクトによって表示されるコンテンツのコピー/貼り付け/切り取りを無効にしたいです。これを実現するために、UIWebViewサブクラスを作成し、- (BOOL)canPerformAction:(SEL)action withSender:(id)senderメソッドをオーバーライドしました。

これで、ユーザーはそのような操作を行うことができなくなりますが、次のスクリーンショットに示すように、UIWebViewには引き続き「選択長方形」が表示されます。

選択長方形

注:UIWebViewに表示されるコンテンツはHTMLページではありません。以下を使用してファイルからロードされたドキュメントファイル(PDF、DOC、PPT)を表示しています。

この選択長方形機能を無効/非表示にする方法はありますか?

[] s、

0 投票する
1 に答える
90 参照

objective-c - この場合、サブクラス化する必要がありますか?

UIViewControllerとUITextViewがあります。UIViewControllerでtouchesbeganメソッドを取得したいのですが、もちろん、UITextViewでブロックされています。それで、resignsfirstresponderをオーバーライドするためにUITextViewをサブクラス化する必要がありますか?別の方法があります。そうでない場合は、単にNOを返すメソッドをオーバーライドするためだけに2つのファイルを作成する必要があります。

ありがとう。

更新:基本的に、ユーザーが画面をタップするたびにUIActionSheetを表示したいと思います。ただし、UITextViewをスクロール可能にする必要もあります。

0 投票する
4 に答える
7506 参照

ios - UIViewControllerがUIResponderのサブクラスである理由

UIViewControllerのサブクラスを作成する目的は何UIResponderですか?ローテーションイベントを渡すためだけに行われたのですか?

ドキュメントでそれに関する決定的な情報を見つけることができませんでした。

アップデート

何かが作成された場合UIResponder、これはレスポンダーチェーンとプロセスイベントに含まれていると想定されることを理解しています。しかし、私には2つの疑問があります。

  1. 私の知る限り、UIViewControllerその直後にレスポンダーチェーンに入れられますviewレスポンダーチェーンにビューコントローラーが必要なのはなぜですか?すでに存在しているので、サブビューviewで処理されなかったイベントをビューに処理させてみませんか?
  2. OK、これが必要になる可能性があることに同意する準備ができています。しかし、View Controllerでイベントを処理することが本当に必要であり、何かを行うための最良/最も簡単/最も適切な方法である場合の実際の例をいくつか見てみたいと思います。
0 投票する
3 に答える
1965 参照

iphone - FirstResponder を変更する

やあみんな。タッチ処理と UIResponder で少し問題が発生しています。

私の目標は、1 回のタッチ (移動) を管理して、さまざまなビューと対話することです。

customViewController に簡単なメッセージを送信するジェスチャー認識エンジンを UIImageView に追加しました。タップされた UIImageView にカスタム ビュー (UIButton をサブクラス化) を割り当てて表示します。

新しく割り当てられたカスタム ボタンにタッチ動作を送信することができます (最初の指のタップを離す必要はありません)。

私の UIImageView が私のタッチを飲み込んでいるように見えるので、私の新しいボタンは指の動きを感じることができません。ファーストレスポンダーを辞退しようとしましたが、効果がないようです。

私のカスタムボタンはかなりうまく機能しますが、最初のタップを離してから、新しい表示ボタンをもう一度タップした場合に限ります。

何か提案はありますか?前もって感謝します。

ここにいくつかのコード:

viewController 内で、profileImageView を囲む円形のボタンを描画する longPressGestureRecognizer を profileImageView にアタッチしました。

ここで、touchMoved メソッドを使用して、circularMenu 内の touchEvent を手動で処理します。

目標は常に、gestureRecognizer の最後を処理し、画面から指を離すことなく、作成された新しいインスタンスにタッチ イベントを渡すことです。

何か案は?

PD: addTarget:action:forControlEvents: をボタン (1、2、3、および 4) で使用すると、touchMoved を使用して手動でタッチを処理します。彼ら。