問題タブ [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 に答える
7543 参照

iphone - UIViewが完全に非表示になるタイミングを知る方法は?

非表示の属性を切り替えることで、2つのビューを切り替えています。1つのビューが非表示または表示されるかどうかをどのように知ることができますか?

ブレークポイントをviewDidLoad、viewDidUnload、viewWillAppear、viewWillDisappear、viewDidDisappear、becomeFirstResponder、およびresignFirstResponderに設定しようとしました。何もない。hidden = YES / NOに設定すると、これらは呼び出されません。

そのビューは...UITabBarItemの下のビューのサブビューのサブビューであるため、私は自分でviewWillAppearを呼び出します。Appleのドキュメントによると、セットアップは不自然であり、一部の自動通知は手動で行う必要があります。これは、非表示のステータスに関連しているはずのbecomeFirstResponderとresignFirstResponderを取得しない場合と同じ問題ですか?

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

iphone - Monotouch を使用した UITextField ResignFirstResponder の例

私は初心者です。ユーザーが UITextField にテキストを入力し終わったときに、キーボードを取り除くために ResignFirstResponder を呼び出す方法と場所がわかりません。UIResponder クラスに少し混乱しています。Mono のドキュメントには、「キーボードを閉じるには、現在ファーストレスポンダであるテキスト フィールドに UIResponder.ResignFirstResponder メッセージを送信してください。」その方法は?誰かが簡単な実例を投稿できますか? Obj-C には多くの例がありますが、C# にはありません。どうもありがとう。

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

iphone - iPhoneのカスタムコピーレスポンダー

アプリケーションにWebビューがあります。ユーザーがWebビューから何かをコピーしたときに処理したいのですが、カスタムメソッドをトリガーする必要があります。フォローしてみました。

myViewCtr.mファイルに次のメソッドを配置しました

しかし、何も機能していません-同じものを実装するにはどうすればよいですか?

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

iphone - サブビューのタッチイベントが発生したときにView Controllerに通知する

ビューにカスタムサブビューがある UIViewController があります。

このカスタム サブビューは、タッチ イベントを追跡し、スワイプ ジェスチャを報告する必要があります。

現在、サブビュー クラスに touchesBegan、touchesMoved、touchesEnded、および touchesCancelled を配置しています。追加のロジックを使用して、スワイプ ジェスチャを取得し、handleRightSwipe メソッドと handleLeftSwipe メソッドを呼び出すことができます。したがって、サブビュー内でスワイプすると、ローカルのスワイプ処理メソッドが呼び出されます。これはすべてうまくいきます。

しかし、実際に必要なのは、handleRightSwipe および handleLeftSwipe メソッドがビュー コントローラーにあることです。それらをサブビュー クラスに残すこともできますが、すべてのロジックとデータも取り込む必要があり、MVC のアイデアが壊れてしまいます。

だから私の質問は、これを処理するクリーンな方法はありますか? 基本的に、タッチイベントメソッドをサブビューに保持して、その特定のビューでのみトリガーされるようにしたいと考えています。しかし、これらのタッチ イベント (この場合はスワイプ ジェスチャ) が発生したときにビュー コントローラーに通知することも必要です。

何か案は?

ありがとう。

アップデート:

Henrik の提案を使用して、私が行ったことの簡単なサンプルを次に示します (読み物を節約するため)。

View Controllerを通知のオブザーバーとして設定しました(早い段階で)。

次に、handleLeftSwipe メソッドを実装します。これは、通知を受信したときに呼び出されます。

サブビューで、スワイプ ジェスチャを受信したときに通知を送信します。

右スワイプも同様です。

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

iphone - 次のレスポンダーをtableviewcellのカスタムボタンからUITableViewControllerに送信するにはどうすればよいですか?

アップデート:

MENUViewControllerがあり、このビューをTableViewCellに挿入します。MENUViewControllerのボタンを押すと、nextResponderをTableViewCellに渡す方法を教えてください。

MENUViewControllerクラスの私のボタンのLOGから->NSLog(@ "nextResponder =%@"、self.nextResponder); このように表示されますか?

更新の@END

各セルに挿入ボタンがあります。そのボタンを押すと、メッセージが送信されません。

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

ボタンからレスポンダーにメッセージをUITableViewControllerに送信させる方法は?

0 投票する
3 に答える
721 参照

iphone - iPhone: 透過的にタッチを処理する

UIViewController とそれに関連付けられた UIView があります。UIView にはいくつかのサブビューがあります。

UIViewController サブクラスで指定された長方形内のタッチ イベントを処理する方法は?

この処理は透過的である必要があります。UIView とそのサブビューは、指定された四角形と交差していても、タッチ イベントを受け取る必要があります。

PS

  1. ビュー コントローラで touchesBegan をオーバーライドしても機能しません。内部ビューはイベントを通過させません。
  2. UIView サブビュー リストの最後にカスタム ボタンを追加しても機能しません。内部サブビューはタッチ イベントを受け取りません。
0 投票する
2 に答える
1441 参照

iphone - UIResponder チェーンの最後に UIApplicationDelegate を追加するにはどうすればよいですか?

IBActionアプリのさまざまな部分で必要な共通機能のメソッドを提供しようとしています。

つまり、ログインはモーダルに実装され、成功すると、読み込まれたすべてのビュー コントローラーがこのイベントに反応できるようにする通知が送信されます (匿名から認証済みへの移行)。

MyAppDelegateそのボタンのアクションを IB の First Responder に設定しましたが、レスポンダー チェーンは応答する機会を与えません。

私の問題は、レスポンダーチェーンのさまざまな部分でメソッドを複製したくないということです。すでにサブクラスである共通クラスに追加したいと考えています。

UIResponderチェーンは までずっと続いていますがUIApplication、それで終わりのようです。私UIApplicationDelegateは参加できません。

アプリ デリゲートをレスポンダー チェーンに挿入または追加したい!

(または、タッチアップ内部をアプリ全体の実装に接続する別の方法を見つけます。可能であれば、またはUIButtonのサブクラス化を避けたい)UITabBarControllerUIWindow

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

ios - タッチ イベントを適切な兄弟 UIView に渡す

touchesBegan親へのオーバーレイでタッチイベントを処理しようとしていますが、タッチ入力がその下のUIView兄弟に渡されることも許可しています。UIViewタッチイベントを処理し、「これが存在しないかのように次のレスポンダーに送信する」と言う簡単な方法があると思っていましたが、私が見つけることができるのは、nextResponder返されているように見えるメソッドだけです私のオーバーレイビューの親。その親は実際にはそのオーバーレイビューの次の兄弟にそれを渡していないので、通常はTrueまたはFalseの戻り値を取得してそれを伝えるタッチコールバックで達成される単純なタスクのように見えることを行う方法がわからないままです処理をウィジェット階層の下に維持するかどうか。

明らかな何かが欠けていますか?

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

iphone - iPad が応答者を辞任しない

セルのコンテンツ ビューに 3 つの UITextFields が追加されたテーブルがあります (セクションごとに 1 行)。特定のフィールドをスクロールしてキーボードの上に表示できるように、挿入する 4 番目のセクションがあります。

私が抱えている問題 (iPad のみ) は、テキスト フィールドの 1 つに firstResponder がある場合、ユーザーが別のフィールドをタップしてもそれが放棄されないことです。iPad のレスポンダー チェーンに違いはありますか? ビュー コントローラ UITextFieldDelegate の次のコードでは、別のフィールドに触れたときに textFieldShouldEndEditing が呼び出されません。完了ボタンを押すと、期待どおりに機能します (別のフィールドがタッチされていない限り)。

以下のコードに何か問題がありますか?