I would like to make my own version of Mac's ABC-Extended keyboard for typing Pinyin (a way to write Mandarin that indicates tones). But when I use Xcode, I just see a target custom keyboard extension for iOS and nothing for macOS. I've looked into the program Ukulele but it doesn't seem like it will do everything I need. Theoretically I could also put my rules into files like how this article indicates but that also seems cumbersome based on what I want my keyboard to do.

Here's what I want it to do:

  • First option: user literally types "ni3 hao3" and my logic in real time changes their output to "nǐ hǎo" (there are pinyin/grammar rules for where the tone mark goes)
  • Secondly (phase 2 in my project), in their user settings for the keyboard, they could indicate they want to convert their text to Hanzi (the characters). So when they type their Pinyin, my algorithm guesses a best guess list of Hanzi characters that matches their Pinyin entry. This would require that I have a downloaded dictionary file for my keyboard.

Thanks for any help! I know how to program it I just need the right software to use :(

  • Btw, I'm curious what software the company Sogou uses for their mac version keyboard: pinyin.sogou.com/mac
    – Nick
    Commented Apr 23, 2022 at 17:46

1 Answer 1


One option (but probably not practical for a project of the scope you envision) would be to use Apple's own Custom IM creator.

An example of one of these for only ni3 hao3 can be downloaded here.

  • Thanks Tom! (And sorry for the delayed response.) That's close to what I'm thinking. This other web page though developer.apple.com/documentation/inputmethodkit from Apple seems promising and then I came across this which is more specific as to implementation logcg.com/en/archives/2078.html. I'll need to play around with this a bit more but thought I'd at least respond to you.
    – Nick
    Commented May 12, 2022 at 0:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .