如何在Mavericks中通过代码打开新的表情符号菜单

the*_*end 4 cocoa emoticons osx-mavericks

在小牛队中,按ctrl + cmd + space有一个新的表情符号菜单.我想在文本字段旁边添加一个小按钮,打开此菜单并将表情符号发送到文本字段.

我想过发送击键事件,但这可能会改变.还有其他方法吗?谢谢.

Mar*_*age 5

orderFrontCharacterPalette:对你有用吗?

[NSApp orderFrontCharacterPalette:nil];
Run Code Online (Sandbox Code Playgroud)

它已经存在了一段时间(10.3),但是将调色板排序到前面的含义可能在10.9中有所改变.

如果它很有趣,我通过插入NSTextView的虚拟子类找到了该方法:

@interface LoggingTextView : NSTextView
@end
Run Code Online (Sandbox Code Playgroud)

它记录respondsToSelector:它收到的调用:

- (BOOL)respondsToSelector:(SEL)aSelector
{
    NSLog(@"selector: %@", NSStringFromSelector(aSelector));
    return [super respondsToSelector:aSelector];
}
Run Code Online (Sandbox Code Playgroud)

在IB/XIB中,我配置了文本视图以使用此子类.然后我运行应用程序并按下Cmd-Ctrl-Space并检查有趣的选择器名称.你也可以在LLDB中使用自动继续断点命令来完成它.

如果你这样做,请确保出现的任何内容都是已发布的API,而不是任何可能随时更改的内部方法.