まず、素晴らしいライブラリです。 使いやすく、本当にうまく機能します:)👍
さて、私は正しいですか、複数のマスクされたテキストフィールドを実装したい場合は、それぞれにMaskedTextFieldDelegate
オブジェクトを追加する必要がありますか?
ねえ@LinusGeffarth!
親切な言葉をありがとう。
あなたの質問に答える、それはあなたがあなたのテキストフィールドにどんな種類のデータを持っているかによります。
たとえば、電話番号を含む複数のフィールドがある場合、マスクは同じになるため、すべてのフィールドに1つのMaskedTextFieldDelegate
オブジェクトを組み込むことができます。
さて、マスクごとに1つのデリゲートオブジェクトです。
好奇心から:マスクがテキストフィールドのプロパティであり、すべてのテキストフィールドが同じデリゲートを共有するように実装しなかったのはなぜですか?
マスクがテキストフィールドのプロパティであり、すべてのテキストフィールドが同じデリゲートを共有するように実装しなかったのはなぜですか?
@LinusGeffarth 、私はこれを賢明な設計上の決定とは呼びません。
カスタムテキストフィールドは、他のカスタムテキストフィールドおよび全体的な継承階層に干渉します。 他のライブラリのカスタムテキストフィールドでマスキングを使用することはできません。 そうしないと、すべてのテキストフィールドにマスクプロパティが含まれることになり、常識に反します。 同じ話があなたのUITextView
でも起こります、そしてそれはさらに大きな厄介です。
オッカムの剃刀を使用して、私たちのライブラリが操作するのはテキストの変更だけです。 この観点から、その機能を実装するための最良の方法は、Androidの対応物に対して行われたように、 on text changed
コールバックに接続することです。
それに最も近いのは、愚かなお尻のUITextFieldDelegate
プロトコルとdelegate
プロパティです。 onEditingChanged
イベントは延期され、非同期で信頼性が低く、さらにUITextView
オブジェクトのターゲットとアクションの関係などはありません。
したがって、これは、合成エンティティの量が最小で、ユーザーのプロジェクトへの影響が最小である最適な方法です。
iOSとmacOSSDKはすでに不十分に設計されているので、同僚の開発者の生活を複雑にしないようにしましょう。 (-:
関連する質問がある場合は、すぐに質問してください。 それ以外の場合は、このスレッドを閉じてください。
理にかなっています、詳しく説明してくれてありがとう!