私はデリゲートやデータソースなどのプロトコルでかなり多くの作業を行ってきましたが、最近、UIKeyInput
プロトコルを使用して何かに取り組んでいます。私はそのようなことに慣れていますself.tableView.delegate = self
が、UIKeyInput
そうする必要はありませんでした。しかし、それでも、私が実装したプロトコルメソッド(例insertText:
など)が呼び出されました。
誰かがこれがどのように機能するかを私に説明できますか?
よろしくお願いします!
私はデリゲートやデータソースなどのプロトコルでかなり多くの作業を行ってきましたが、最近、UIKeyInput
プロトコルを使用して何かに取り組んでいます。私はそのようなことに慣れていますself.tableView.delegate = self
が、UIKeyInput
そうする必要はありませんでした。しかし、それでも、私が実装したプロトコルメソッド(例insertText:
など)が呼び出されました。
誰かがこれがどのように機能するかを私に説明できますか?
よろしくお願いします!
Cocoa Touchフレームワークには、「レスポンダーチェーン」の概念があります。これは、UI入力イベントを配信する場所を特定する方法です。「ファーストレスポンダー」はレスポンダーチェーンの先頭にいます。iOSにキーボード入力イベントがある場合、現在のファーストレスポンダーがUIKeyInputプロトコルをサポートしているかどうかを確認し、サポートしている場合はそれらのメソッドを呼び出します。
フレームワークはこれらのメッセージの受信者をファーストレスポンダーとして定義するため、別のオブジェクトのUIKeyInputDelegateとして登録する必要はありません。