問題タブ [first-responder]
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.
objective-c - nib の First Responder オブジェクトを理解しようとする
簡単に要約してみましょう。nib ファイルの「ファーストレスポンダ」は、ユーザーのフォーカスを持つ UI コントロール要素を表すオブジェクトです。したがって、ユーザーがコントロールをクリックすると、nib はクリックされた UI コントロールを First Responder として設定します。私のアプリでは、ペン先からその「ファーストレスポンダー」へのアウトレットを作成できるため、たとえば、ユーザーがクリックしてアクティブにしたものに「赤いフォントの色にする」というメッセージを送信できます。
そして、この First Responder UI コントロールがそのメッセージを理解できない場合、親要素または祖父母 (など) の UI コントロール要素がメッセージを理解するまで、メッセージはレスポンダー チェーンに渡されます。それ以外の場合は無視されます。
したがって、First Responder は常に、フォーカスのある UI コントロールへの「リンク」を確立します。そうですか?
( 「First Responder」の正確な複製- 私はそれを正しく理解しましたか?同じ著者による)
iphone - UiTextField と rejectFirstResponder
私は奇妙な設定をしています。
View
呼び出されたView1とViewController
呼び出しviewController1があります
ではIB
、View1はViewController1の子です。
View1内で、コード a を使用して作成しUITextField
、サブビューとして追加しました。
私のViewcontroller
中で、私は持っていますviewController1 : UIViewController <UITextFieldDelegate>
今..View1内のテキストフィールドがキーボードの「完了」ボタンを取得したら、キーボードを辞任したいので、
問題は、TEXTFIELD (ビューコントローラーで定義) とビューで定義されたテキストフィールドをどのように接続するかです。
interfaceBuilder で何かをする必要がありますか?
多分私はここで完全にオフです....
いくつかのヒントは大歓迎です
cocoa-touch - 私の見解とUIDatePickerのどちらが最初の応答者になるべきですか?
の兄弟を作成UITextField
していUIDatePicker
ますが、キーボードの代わりに使用しています。
複数のそのようなコントロールが互いにうまく機能し、標準でも動作するようにしたいUITextField
(つまり、コントロールがアクティブになっている場合はキーボードを日付ピッカーに交換し、テキストフィールドがアクティブになっている場合は日付ピッカーを非表示にします)。
私を混乱させる1つのことは、ファーストレスポンダーのステータスの処理です。UIDatePicker
ファーストレスポンダーになることを求めていないようです。それが必要ですか?自分のコントロールがファーストレスポンダーを辞任するように求められたときに、ファーストレスポンダーにならず、日付ピッカーを非表示にすることを信頼できますか?
UIDatePicker
コントロール(または他のもの)を設定する必要がありnextResponder
ますか?イベントを処理したくありません。必要に応じて、コントロールがフォーカスを盗んで辞任するようにしたいだけです。
(この場合、ペン先は使用していません)
iphone - TextField とファーストレスポンダーを使用したカスタム TableViewCell
TextField を含むカスタム TableView セルがあり、ビューが表示されるとすぐに最初のレスポンダーになりたいのですが、[textcell.textfield becomeFirstResponder] は機能しません。それは別のクラスのカスタムセルであり、そこで試してみてもうまくいかなかったからです。誰でもこれをやってのける方法を知っていますか?
ありがとう...
iphone - あるUIViewから別のUIViewにファーストレスポンダーを「転送」する方法は?
すべてのイベント(開始、移動、終了、キャンセル)CustomView
を独自に処理するUIViewサブクラス(この質問の目的で)があります。touches
私はまた、それと重なるUIButton
兄弟です。CustomView
たとえば、私のビュー階層は次のようになります。
- UIView(コントローラーのビュー)
- フレーム付きCustomView(0、0、300、300)
- フレーム付きUIButton(0、0、100、50)
ユーザーがUIButtonからドラッグした後、CustomViewでタッチイベントをキャプチャしたいと思います。デバッグログから、UIControlEventTouchDragExit
イベントがインターセプトするイベントであるように見えます(ただし、タッチがボタンから約100ピクセル離れるまで発生しませんが、この質問では重要ではありません)。
理想的には、ドラッグ終了イベントが発生すると、ボタンはタッチ移動イベントの受信を停止し、CustomViewはイベントを取得しtouchesBegan
(何らかの方法で自分で偽造する必要がある場合でも)、今後のすべてのタッチイベント(touchesMoved
など)はに送信されます。 CustomView。
次のことを試しましたが、効果がありません。
UITouch
基になるオブジェクト(タッチイベント全体で一貫している)は、CustomViewを指すようにリターゲットされていないと思います。どうすれば目的の効果を達成できますか?
objective-c - ビュー コントローラーでファーストレスポンダーへのメッセージを処理する
単純なものが欠けているに違いありませんが、見えません。まず、セットアップ:
DATreeView
、のサブクラスNSView
DATreeViewController
、のサブクラスNSViewController
MainMenu.xib
DATreeViewController
からビューをロードするように構成された のインスタンスがありますDATreeView.xib
MainMenu.xib
のインスタンスもありDendreaAppDelegate
、アウトレットがあります (のインスタンスDATreeViewController
に配線されています) 。MainMenu.xib
DATreeViewController
Do Something!
doSomething:
、ファーストレスポンダにメッセージを送信するために接続されたメニュー項目です。- 偶然で
DATreeViewController
はなく、 というアクションがありdoSomething:
ます。
私が望むのは、Do Something!
メニュー項目が でdoSomething:
アクションをトリガーするDATreeViewController
ことです。ターゲット/アクション接続を直接設定することはできないふりをしましょう。ここで立ち止まって質問します。私の設計は完全に間違っていますか? 私がやろうとしていることは、私の神の目に愚か/悪/恥をかかせる可能性がありますか?
いいえ?偉大な。さて、私の人生では、メニュー項目をアクティブにすることはできません。違いがある場合は、Snow Leopardでこれを行っています。
NSView
との間の適切な統合を実現するためにNSViewController
、たとえばレスポンダー チェーンの管理など、 Matt Gallagher の例に従いましたが、実質的な変更が 1 つNSView
ありsetViewController:
ます。DATreeViewController
のloadView
メッセージ。私が知る限り、次のコードを実行した後applicationDidFinishLaunching:
レスポンダー チェーンは期待どおりに設定されます。つまり、次のようになります。
レスポンダ チェーンの一部でDATreeViewController
あり、 に応答しdoSomething:
、検証を実装していないため、Interface Builder を使用してDo Something!
メニュー項目を First Responder プロキシに接続するだけでよいと思っていました。をdoSomething:
アクションとして使用すると、メニュー項目が自動的にアクティブになります。
私は何を間違っていますか?かけがえのない支援をありがとうございました!
objective-c - イベントを処理しない場合は、別のNSControlの下にあるNSControlにイベントを送信します
特定の条件下でマウスクリックを処理できる複数の重ね合わせたコントロールがあります。私がしたいことは次のとおりです。
- トップコントロールがイベントを受信し
mouseDown:
ます。 - トップコントロールは、
mouseDown:
イベントを処理するかどうかを決定します。 - もしそうなら、何かをして、他のコントロールが
mouseDown:
イベントを受け取らないようにしてください。 - そうでない場合は、下にあるコントロールにイベントを送信します。
- このコントロールは、イベントを処理するかどうかを決定します。
- 等
本質的に、私は「Zオーダー」がトップコントロールのすぐ下にあるコントロールにイベントを送信しようとしています。トップコントロールは他のコントロールについて知る必要がなく、インスタンス化時に特別な設定も必要ありません。
[topControl nextResponder]
最初に頭に浮かんだのは、イベントをに送信することでしたがnextResponder
、ウィンドウ上のすべてのコントロールはウィンドウ自体であり、以前考えていたZオーダーに基づくコントロールのチェーンではないようです。
次のレスポンダーを手動で設定せずにこれを行う方法はありますか?目標は、他のコントロールから独立していて、ウィンドウにドロップするだけで期待どおりに機能するコントロールを取得することです。
前もって感謝します!
ios - UITableViewCellに埋め込まれている間、UITextFieldにファーストレスポンダーになるように指示する
のUITextField
サブビューであるがありUITableViewCell
ます。
ビューが読み込まれたときに、テキストフィールドをファーストレスポンダーにします。テーブルセルのテキストフィールドへのポインタがあるので、これを行うために私は試しています:
これは、いつ呼び出されたかに関係なく、常に返されます。これはNO
、ドキュメントによると、テキストフィールドがファーストレスポンダーになることを拒否したことを意味します...私は何が間違っているのですか?
編集:
触れられたときtextfield
に適切に反応します。次にキーボードを起動します。becomefirstresponder
問題が発生するのは、プログラムで指示した場合のみです。
objective-c - プライベートAPIを使用せずに現在のファーストレスポンダーを取得する
私は1週間ほど前にアプリを送信し、今日は恐ろしい拒否メールを受け取りました。非公開のAPIを使用しているため、アプリを受け入れられないことがわかります。具体的には、
アプリケーションに含まれている非公開APIはfirstResponderです。
さて、問題のあるAPI呼び出しは、実際には私がここSOで見つけた解決策です。
画面に現在のファーストレスポンダーを表示するにはどうすればよいですか?アプリが拒否されない方法を探しています。