Instead of showing all the Chinese characters that matches the ma regardless of the tone when the user types ma:
the keyboard should not show any Chinese characters.
In order for the Chinese characters to be shown, the user would have to explicitly indicate the tone number, then the Chinese characters that matches the tone number will be presented to user.
ma1 = 妈 孖 嬷
ma2 = 麻 蟆
ma3 = 马 码 玛
ma4 = 骂 杩
ma5 = 嘛 嫲
Are there any iOS keyboard (or even Android) that facilitates that?
This way, the learner is forced to learn the proper sound of each Chinese characters.
To clarify, currently this is how iOS behaves when the user explicitly indicates tone, example for ma1:
The Hanzis that iOS presents to user are not filtered from the tone the user types (e.g., ma1). iOS just merely shows all ma regardless of tone. Thus with ma1, iOS presents these choices to users:
吗1 码1 吗 妈 嘛 马
吗 码 are 3rd and 5th tones respectively, not first tones.