From dee21bf452a8979d0515d13e534fbb69ed9715dd Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 01 九月 2020 15:33:13 +0800
Subject: [PATCH] 上传一个版本
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs | 88 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 72 insertions(+), 16 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
old mode 100755
new mode 100644
index 6d11849..72ed6e8
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
@@ -16,7 +16,7 @@
/// </summary>
private NormalViewControl btnLineTemp = null;
/// <summary>
- /// 鑱斿姩搴曠嚎(鍊艰緭鍏ヤ箣鍚�,绾跨殑棰滆壊浼氬彉)
+ /// 鑱斿姩搴曠嚎(鍏夋爣杩涙潵涔嬪悗,绾跨殑棰滆壊浼氬彉)
/// </summary>
public NormalViewControl btnLine
{
@@ -25,19 +25,47 @@
this.btnLineTemp = value;
}
}
+ /// <summary>
+ /// 鑱斿姩澶栨
+ /// </summary>
+ private NormalFrameLayout frameBorder = null;
+ /// <summary>
+ /// 鑱斿姩澶栨(鍏夋爣杩涙潵涔嬪悗,澶栨鐨勯鑹蹭細鍙�)
+ /// </summary>
+ public NormalFrameLayout FrameBorder
+ {
+ set
+ {
+ this.frameBorder = value;
+ }
+ }
/// <summary>
/// 杈撳叆缁撴潫鐨勪簨浠�
/// </summary>
public Action FinishInputEvent = null;
/// <summary>
- /// 鏈�澶ц緭鍏ラ暱搴�(鐩墠鍙拡瀵规寜涓嬪洖杞﹂敭鏃惰繘琛屾娴�,瓒呰繃鏃�,涓嶄細璋冪敤FinishInputEvent)
- /// </summary>
- public int MaxByte = 0;
- /// <summary>
/// 鎸囧畾璇ヨ緭鍏ユ鏄惁涓轰笉鍙渷鐣�(榛樿涓篺alse)
/// </summary>
public bool MustInput = false;
+
+ private int m_MaxByte = -1;
+ /// <summary>
+ /// 鏈�澶ц緭鍏yte闀垮害
+ /// </summary>
+ public int MaxByte
+ {
+ get { return m_MaxByte; }
+ set
+ {
+ m_MaxByte = value;
+ this.TextChangeEventHandler -= this.TxtCode_TextChangedEvent;
+ if (m_MaxByte > 0)
+ {
+ this.TextChangeEventHandler += this.TxtCode_TextChangedEvent;
+ }
+ }
+ }
private bool m_UseFocusColor = false;
/// <summary>
@@ -177,6 +205,10 @@
{
btnLineTemp.BackgroundColor = UserCenterColor.Current.ButtomLine;
}
+ if (frameBorder != null)
+ {
+ frameBorder.BorderColor = 0xffcccccc;
+ }
if (m_UseFocusColor == true)
{
//鐏拌壊瀛椾綋
@@ -188,6 +220,10 @@
if (btnLineTemp != null)
{
btnLineTemp.BackgroundColor = UserCenterColor.Current.TextFrameSelectColor;
+ }
+ if (frameBorder != null)
+ {
+ frameBorder.BorderColor = UserCenterColor.Current.TextFrameSelectColor;
}
if (m_UseFocusColor == true)
{
@@ -212,6 +248,37 @@
return;
}
this.FinishInputEvent?.Invoke();
+ }
+
+ /// <summary>
+ /// 鍊兼敼鍙樹簨浠�
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="value"></param>
+ private void TxtCode_TextChangedEvent(object sender, string value)
+ {
+ var byteData = Encoding.UTF8.GetBytes(value);
+
+ //濡傛灉杈撳叆鐨勫��,宸茬粡澶т簬鎸囧畾鐨刡yte鏁�,鍒欐埅鍙�
+ if (byteData.Length > this.m_MaxByte)
+ {
+ //鎴彇鎸囧畾鐨刡yte瀛楄妭
+ var newValue = Encoding.UTF8.GetString(byteData, 0, this.m_MaxByte);
+ //鏈�鍚庝竴浣嶄笉瑕�,鍥犱负鎴彇鐨勬渶鍚庝竴浣嶅彲鑳芥槸涔辩爜
+ newValue = newValue.Substring(0, newValue.Length - 1);
+ //鎷兼帴涓婂畠鐨勪笅涓�浣�,鐒跺悗妫�娴�
+ var checkValue = newValue + value[newValue.Length];
+ if (Encoding.UTF8.GetBytes(checkValue).Length <= this.m_MaxByte)
+ {
+ //姝eソ鍖归厤byte鏁�
+ newValue = checkValue;
+ }
+ this.Text = newValue;
+#if Android
+ //灏嗗厜鏍囪嚦浜庢渶鍚�
+ this.SetSelectionEnd();
+#endif
+ }
}
#endregion
@@ -265,17 +332,6 @@
/// <returns></returns>
private string CheckMaxByte()
{
- if (this.MaxByte != 0)
- {
- if (Encoding.UTF8.GetBytes(this.Text.Trim()).Length > this.MaxByte)
- {
- //杈撳叆鍐呭杩囬暱,鏈�澶0}瀛楄妭
- string msg = Language.StringByID(R.MyInternationalizationString.uInputContentIsOverLengthMsg);
- msg.Replace("{0}", this.MaxByte.ToString());
-
- return msg;
- }
- }
return null;
}
--
Gitblit v1.8.0