Input-mask-ios: 複数のマスクされたテキストフィールド

作成日 2018年10月12日  ·  4コメント  ·  ソース: RedMadRobot/input-mask-ios

まず、素晴らしいライブラリです。 使いやすく、本当にうまく機能します:)👍

さて、私は正しいですか、複数のマスクされたテキストフィールドを実装したい場合は、それぞれにMaskedTextFieldDelegateオブジェクトを追加する必要がありますか?

circumstances clarification question

全てのコメント4件

ねえ@LinusGeffarth!
親切な言葉をありがとう。

あなたの質問に答える、それはあなたがあなたのテキストフィールドにどんな種類のデータを持っているかによります。

たとえば、電話番号を含む複数のフィールドがある場合、マスクは同じになるため、すべてのフィールドに1つのMaskedTextFieldDelegateオブジェクトを組み込むことができます。

さて、マスクごとに1つのデリゲートオブジェクトです。
好奇心から:マスクがテキストフィールドのプロパティであり、すべてのテキストフィールドが同じデリゲートを共有するように実装しなかったのはなぜですか?

マスクがテキストフィールドのプロパティであり、すべてのテキストフィールドが同じデリゲートを共有するように実装しなかったのはなぜですか?

@LinusGeffarth 、私はこれを賢明な設計上の決定とは呼びません。

カスタムテキストフィールドは、他のカスタムテキストフィールドおよび全体的な継承階層に干渉します。 他のライブラリのカスタムテキストフィールドでマスキングを使用することはできません。 そうしないと、すべてのテキストフィールドにマスクプロパティが含まれることになり、常識に反します。 同じ話があなたのUITextViewでも起こります、そしてそれはさらに大きな厄介です。

オッカムの剃刀を使用して、私たちのライブラリが操作するのはテキストの変更だけです。 この観点から、その機能を実装するための最良の方法は、Androidの対応物に対して行われたように、 on text changedコールバックに接続することです。

それに最も近いのは、愚かなお尻のUITextFieldDelegateプロトコルとdelegateプロパティです。 onEditingChangedイベントは延期され、非同期で信頼性が低く、さらにUITextViewオブジェクトのターゲットとアクションの関係などはありません。

したがって、これは、合成エンティティの量が最小で、ユーザーのプロジェクトへの影響が最小である最適な方法です。

iOSとmacOSSDKはすでに不十分に設計されているので、同僚の開発者の生活を複雑にしないようにしましょう。 (-:

関連する質問がある場合は、すぐに質問してください。 それ以外の場合は、このスレッドを閉じてください。

理にかなっています、詳しく説明してくれてありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価