public void ChangeIme(ChatBoxChangeImeData imeData) { if (imeData.bIsInImeList && !imeData.name.Equals(ULocalizationService.Instance.Get("UIView", "ChatBox", "EN"))) { chineseIcon.gameObject.SetActive(true); enIcon.gameObject.SetActive(false); } else { chineseIcon.gameObject.SetActive(false); enIcon.gameObject.SetActive(true); } }
//激活/关闭输入法 public static void ActiveIme(bool bEnable) { if (!bInit || !bForbidIme) { return; } bEnableIme = bEnable; if (bEnableIme) { GameLogicAPI.ActivateKeyboardLayout(cacheImeIntPtr, KLF_ACTIVATE); currentImeIntPtr = GameLogicAPI.GetKeyboardLayout(0); szImeName = ""; bool isInImeList = false; foreach (KeyValuePair <string, IntPtr> temp in ImeList) { if (temp.Value == currentImeIntPtr) { szImeName = temp.Key; isInImeList = true; } } ChatBoxChangeImeData imeData = new ChatBoxChangeImeData(); imeData.bIsInImeList = isInImeList; imeData.name = szImeName; imeData.bIsIme = szImeName == szEnName ? false : true; UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_CHATBOX_CHANGEIME, imeData); } else { cacheImeIntPtr = currentImeIntPtr; GameLogicAPI.ActivateKeyboardLayout(defaultEnImeIntPtr, KLF_ACTIVATE); ChatBoxChangeImeData imeData = new ChatBoxChangeImeData(); imeData.bIsInImeList = false; imeData.name = szEnName; imeData.bIsIme = false; UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_CHATBOX_CHANGEIME, imeData); } }
public void Update() { if (!bForbidIme || !Initialize.isOnFocus) { return; } currentImeIntPtr = GameLogicAPI.GetKeyboardLayout(0); if (bEnableIme) { if (currentImeIntPtr != PrevImeIntPtr) { PrevImeIntPtr = currentImeIntPtr; szImeName = ""; bool isInImeList = false; foreach (KeyValuePair <string, IntPtr> temp in ImeList) { if (temp.Value == currentImeIntPtr) { szImeName = temp.Key; isInImeList = true; } } ChatBoxChangeImeData imeData = new ChatBoxChangeImeData(); imeData.bIsInImeList = isInImeList; imeData.name = szImeName; imeData.bIsIme = szImeName == szEnName ? false : true; UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_CHATBOX_CHANGEIME, imeData); } } //屏蔽输入法切换 else { //if (currentIme != defaultIme) GameLogicAPI.ActivateKeyboardLayout(defaultEnImeIntPtr, KLF_ACTIVATE); } }