Input-mask-ios: マスク内の固定シンボル

作成日 2017年02月20日  ·  3コメント  ·  ソース: RedMadRobot/input-mask-ios

を使用して固定記号を使用できるようになると便利です。

たとえば、電話番号のマスクが必要です:+7(111)111-11-11
したがって、ドキュメントによると、この場合のマスクを作成できます:+7([000])[000]-[00]-[00]
そして、それは大丈夫です。 しかし、ユーザーが最初の2つの記号(+7)をクリアできないようにする必要があります。 したがって、毎回「+7」がテキストフィールドに表示される必要があります。

enhancement question rejected

最も参考になるコメント

@TikhonovAlexanderちょっとそこに。 @razalurも興味があるかもしれません。

この機能のリクエストについてお知らせいただきありがとうございます。 私たちは実際、Appleの2人の伝道者と、テキストフィールド内に編集不可能なテキストがあることについて短い話をしました。

TL; DR:この機能はサポートしません。

アプリに対するユーザーの制御を制限し、意思決定を引き継ぐことは悪い考えですが、 HIGに直接違反することはありません。 ネイティブテキストフィールドはそのように動作せず、iOS SDKにはすでに静的テキストのコンポーネント( UILabelます。

ネイティブキーボードのBackspaceボタンを無効にしたり、グレーアウトしたりすることはできません。クリアできない記号は、エンドユーザーが設計された動作なのかバグなのかを判断できないため、混乱を招きます。 「なぜ私のBackspaceボタンが機能しないのですか?」 —そしてあなたは明確なヒントを与えることはできません。

ライブラリ設計の観点から、開発者が行の中央に「固定」記号を配置する可能性があることは明らかです。 しかし、ユーザーが行の先頭から文字を削除し始めるとどうなると思いますか?

UITextFieldクリアボタンを組み込むことにした場合、さらに多くの質問が発生します。
対応するデリゲートメソッド-textFieldShouldClear()では、テキストフィールドを部分的にクリアすることはできません。これは、すべてのテキストを消去することを目的としています。 クリアボタンの動作をオーバーライドまたは拡張することは、設計上の決定があいまいであり、すべてのユースケースをカバーする必要があるため、ライブラリの大きな責任となります。 一部の人(開発者とユーザー)は、ネイティブのクリアボタンですべてのテキストを消去することを望み、クリアした後もすべての「固定」記号が残ることを期待する人もいれば、「固定」プレフィックスのみが残り「固定」されると想定する人もいます。行の中央にある文字は消去する必要があります。

私があなたを助けることができる唯一のことはあなたが達成しようとしている目標を通して考えるためのアドバイスです。
SDKが常に勝つため、SDKと戦わないでください。

全てのコメント3件

ねえ@razalur
あなたの提案をありがとう。 今週後半にフィードバックをお届けしますので、しばらくお待ちください。

更新はありますか?

@TikhonovAlexanderちょっとそこに。 @razalurも興味があるかもしれません。

この機能のリクエストについてお知らせいただきありがとうございます。 私たちは実際、Appleの2人の伝道者と、テキストフィールド内に編集不可能なテキストがあることについて短い話をしました。

TL; DR:この機能はサポートしません。

アプリに対するユーザーの制御を制限し、意思決定を引き継ぐことは悪い考えですが、 HIGに直接違反することはありません。 ネイティブテキストフィールドはそのように動作せず、iOS SDKにはすでに静的テキストのコンポーネント( UILabelます。

ネイティブキーボードのBackspaceボタンを無効にしたり、グレーアウトしたりすることはできません。クリアできない記号は、エンドユーザーが設計された動作なのかバグなのかを判断できないため、混乱を招きます。 「なぜ私のBackspaceボタンが機能しないのですか?」 —そしてあなたは明確なヒントを与えることはできません。

ライブラリ設計の観点から、開発者が行の中央に「固定」記号を配置する可能性があることは明らかです。 しかし、ユーザーが行の先頭から文字を削除し始めるとどうなると思いますか?

UITextFieldクリアボタンを組み込むことにした場合、さらに多くの質問が発生します。
対応するデリゲートメソッド-textFieldShouldClear()では、テキストフィールドを部分的にクリアすることはできません。これは、すべてのテキストを消去することを目的としています。 クリアボタンの動作をオーバーライドまたは拡張することは、設計上の決定があいまいであり、すべてのユースケースをカバーする必要があるため、ライブラリの大きな責任となります。 一部の人(開発者とユーザー)は、ネイティブのクリアボタンですべてのテキストを消去することを望み、クリアした後もすべての「固定」記号が残ることを期待する人もいれば、「固定」プレフィックスのみが残り「固定」されると想定する人もいます。行の中央にある文字は消去する必要があります。

私があなたを助けることができる唯一のことはあなたが達成しようとしている目標を通して考えるためのアドバイスです。
SDKが常に勝つため、SDKと戦わないでください。

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