Mac-自带输入法中英文切换失效

问题描述

系统为MacOS Sierra 版本号 10.12.3。
使用的系统自带的输入法,一直都相安无事,然后今天出现了问题 ,表现为:

1.中英文来回切换的时候,工具栏图标显示是切换回来了,但是并没有
2.多切换几次也没有用,只有去别的输入页面再回来才会正常

为此我安了搜狗输入法,搜狗内切换是没问题,然而一旦不小心切换到系统输入法,此问题就会复现。

幸得 Google 大神眷顾,让我搜到了问题的终极解决方案!链接在此,对博主表达一万次感谢!

问题解决

1.Launchpad -> 实用工具 -> 活动监视器
2.找到 TISwitcher 这个进程,停掉就好了

问题原因

没有找到真正的原因,我也想知道是啥原因,如果你知道,还望告知,这里提前说声谢谢。


欢迎关注个人微信公众号「浅浅同学的开发笔记」,最新的博客,好玩的事情,都会在上面分享,期待与你共同成长。

在这里插入图片描述

在Qt中实现输入法中英文切换,通常涉及到键盘事件处理、文本编辑组件和语言资源管理。以下是一个简化的步骤: 1. **设置输入源**:首先,你需要确保应用程序支持输入法切换,并在需要接收用户输入的地方(如QLineEdit或QTextEdit)启用多线程输入,以便在用户切换输入法时保持响应。 ```cpp QApplication::setInputMethodHints(Qt::ImhPreferComposition | Qt::ImhSensitiveContexts); ``` 2. **监听键盘事件**:通过`QObject::installEventFilter()`安装一个事件过滤器来捕获键盘按下事件,例如`QEvent::KeyPress`。 ```cpp QObject::connect(window, &QWidget::keyPressEvent, this, &YourClass::onKeyPressEvent); ``` 3. **处理键盘事件**:在`onKeyPressEvent`函数里检查键码,比如当用户按下Shift+空格键时切换输入法。 ```cpp void YourClass::onKeyPressEvent(QKeyEvent* event) { if (event->key() == Qt::Key_Space && QApplication::keyboardModifiers() & Qt::ControlModifier) { // 切换输入法的代码 } } ``` 4. **切换输入法**:这一步通常需要操作系统级别的API,可以使用平台相关的库(如Windows的ImmGetIMEState和ImmSetIMEState,Linux的XIM等)。Qt本身并不直接提供这个功能,可能需要第三方库或者依赖系统的API。 5. **更新界面**:切换输入法后,更新显示的字符或提示,反映当前的输入状态。 6. **国际化**:对于多语言环境,你还需要准备相应的语言资源(如文本字符串),并在切换到英文时改变显示内容。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值