// // KBEmojiDataProvider.h // CustomKeyboard // #import NS_ASSUME_NONNULL_BEGIN FOUNDATION_EXPORT NSString * const KBEmojiRecentsDidChangeNotification; @class KBEmojiCategory, KBEmojiItem; @interface KBEmojiItem : NSObject @property (nonatomic, copy, readonly) NSString *value; @property (nonatomic, copy, readonly) NSString *name; - (instancetype)initWithValue:(NSString *)value name:(NSString *)name; @end @interface KBEmojiCategory : NSObject @property (nonatomic, copy, readonly) NSString *identifier; @property (nonatomic, copy, readonly) NSString *displayTitle; @property (nonatomic, copy, readonly) NSString *iconSymbol; @property (nonatomic, assign, readonly, getter=isDynamic) BOOL dynamic; @property (nonatomic, copy, readonly) NSArray *items; @end @interface KBEmojiDataProvider : NSObject + (instancetype)shared; /// 所有分类(按系统顺序),包含“常用”。 @property (nonatomic, copy, readonly) NSArray *categories; /// 记录一次 emoji 选择,并刷新“常用”分类。 - (void)recordEmojiSelection:(NSString *)emoji; /// 重新加载 JSON(若首次调用)。 - (void)reloadIfNeeded; /// 更新当前语言对应的分类标题。 - (void)refreshLocalizedTitles; @end NS_ASSUME_NONNULL_END