dongyuwei / hallelujahIM

hallelujahIM(哈利路亚 英文输入法) is an intelligent English input method with auto-suggestions and spell check features.
GNU General Public License v3.0
2.22k stars 118 forks source link

JIS布局的键盘似乎有些问题 #9

Closed nasyxx closed 5 years ago

nasyxx commented 7 years ago

整体按键上没什么问题,主要是,从中文使用大写锁定键换到hallelujahIM后,没办法再次通过大写锁定换回中文。以及空格左边的按键 lang2 被识别为单引号及空格了。

dongyuwei commented 7 years ago

HHKB...我木有这个,不好测试哦。你debug一下试试?

nasyxx commented 7 years ago

嗯,应该怎样做呢? 我用 Karabiner-eventviewer 看了一下 screen shot 2017-03-18 at 10 57 24 pm

看起来并没按键映射错误。

正常情况下,那个按键 event 应该是 down 和 up,但是,如果换到这个输入法,就只剩 down 了,只有切换输入法,才会出现 up。

刚刚,再试了一下,发现,使用自带的键盘,似乎也不能支持 ”使用大写锁定切换 U.S. 与当前语言“ 这个选项。

screen shot 2017-03-18 at 11 15 34 pm
dongyuwei commented 7 years ago

Karabiner挺有意思。

具体要debug的话,不知道你开发过OSX应用没有?可以用Xcode打开hallelujah.xcodeproj (命令行下直接 open hallelujah.xcodeproj 也可以),在InputController.m源码中用NSLog打些日志看看。

“正常情况下,那个按键 event 应该是 down 和 up,但是,如果换到这个输入法,就只剩 down 了,只有切换输入法,才会出现 up。” --- 这个可能是要修改下面的方法,加上NSKeyUpMask吧?不是很确定。

-(NSUInteger)recognizedEvents:(id)sender{
    return NSKeyDownMask | NSFlagsChangedMask;
}
dongyuwei commented 7 years ago

NSLog的日志可以通过OSX中自带的Console这个app来查看。建议log有个一致的前缀以方便过滤。在10.12之前也可以通过tail -f /var/log/system.log来查看NSLog的日志,但在sierra系统中这个不work了。

dongyuwei commented 7 years ago

build出新的hallelujah app之后,要替换并且启用新的输入法app,可按如下步骤来操作:

  1. delete the hallelujah from Input sources
  2. kill the old hallelujah process
  3. replace the hallelujah input method app in /Library/Input Methods/.
  4. add the hallelujah to Input sources
  5. switch to hallelujah, use it.
  6. check the log.
dongyuwei commented 7 years ago

构建如图所示,构建之后的hallelujah.app在Products下可见,右键“Show in Finder”即可找到最新的app。

screen shot 2017-03-19 at 10 13 03
nasyxx commented 7 years ago

嗯,非常感谢,等我闲下来去试试看

dongyuwei commented 3 years ago

@nasyxx 这个问题应该是解决了。参见 https://github.com/dongyuwei/hallelujahIM/issues/106