Whenever in such doubt when publishing an iOS app, your first step should be to thoroughly go through the App Store Review Guidelines.
Searching for emoji, these are the relevant matches in the document:
4.5.6 Apps may use Unicode characters that render as Apple emojis in their app and app metadata. Apple emojis may not be used on other platforms or embedded directly in your app binary.
5.2.5 Apple Products: ... Apps and extensions, including third party keyboards and Sticker packs, may not include Apple emoji. ...
It is clear that using unicode characters which render as Apple Emojis is permitted, but using Apple Emojis is not allowed.
If I were in a similar situation, I would do the following:
Change the default keyboard shortcut for Emoji & Symbols from ⌃⌘Space to ⌃⌥⌘Space so that the default ⌃⌘Space can be used as a shortcut with one of the scripts, the primary one.
Create two AppleScript scripts, one for showing Emoji & Symbols, (the primary one for me), and the other for showing Character Viewer. (This could be done in one script however, for coding simplicity two will be used.)
Use FastScripts to assign a keyboard shortcut to each. The first for My Emoji & Symbols to ⌃⌘Space and for My Character Viewer, use ⌃⇧⌘Space as shown in the image further below.
Note that I have no affiliation with Red Sweater Software, the developer of FastScripts, and am just a satisfied user.
- Note that in place of using FastScripts, an Automator Service can be used. However, I prefer the former because it has worked better for me then the latter.
The following was tested and worked under macOS High Sierra...
First, change the global keyboard shortcut for the Emoji & Symbols menu item:
Next, create two AppleScript scripts (.scpt) files in ~/Library/Scripts/
, one named My Emoji & Symbols and the other named My Character Viewer, adding the following to each:
For My Emoji & Symbols:
do shell script "defaults write com.apple.CharacterPaletteIM CVStartAsLargeWindow -bool false"
delay 0.5
tell application "System Events" to keystroke space using {control down, option down, command down}
For My Character Viewer:
do shell script "defaults write com.apple.CharacterPaletteIM CVStartAsLargeWindow -bool true"
delay 0.5
tell application "System Events" to keystroke space using {control down, option down, command down}
- Note the only difference between the two is the value of
-bool
, being true
or false
for the CVStartAsLargeWindow
key. Also, the value of the delay
command is to allow time for the defaults
command to make the write before System Events triggers the new global keyboard shortcut for the Emoji & Symbols menu item. The value of the delay
command may need be adjusted, so do so as needed.
Then in FastScripts > Preferences... > Script Shortcuts, assign ⌃⌘Space (or ⌃⌘␣) to My Emoji & Symbols, and assign ⌃⇧⌘Space (or ⌃⇧⌘␣) to My Character Viewer. See image below.
- Note that FastScripts will need to be added to: System Preferences > Security & Privacy > Privacy > Accessibility See image below.
If using Automator Services, use a Run Apple Script action with the example AppleScript code, show above, replacing the default code in each and assign keyboard shortcuts via: System Preferences > Keyboard > Shortcuts > Services
- Note that the mentioned naming conventions and or paths, et cetera, have changed for some items in macOS Mojave and will need to be adjusted accordingly. I am not yet running macOS Mojave however, have seen posts on some of the differences. You'll need to adjust as necessary if running macOS Mojave.
Key Symbol Legend:
- Shift: ⇧
- Control: ⌃
- Option: ⌥
- Command: ⌘
- Space: Space
System Preferences > Keyboard > Shortcuts > App Shortcuts
FastScripts > Preferences... > Script Shortcuts
• Note that the ␣ character, shown in the shortcut below, is for the space character.
System Preferences > Security & Privacy > Privacy > Accessibility
Best Answer
No, this is not possible.
You can quickly switch to a specific keyboard by holding down on the keyboard language button and sliding your finger to the specific keyboard.
Also, the keyboard order is always fixed, so you know to double-tap the keyboard language button to go to a specific keyboard from another specific keyboard.