12

我正在尝试构建一个自定义键盘,它就像一个表情符号键盘,但键盘的数据来自一个 json 文件。解析这个json文件并获取数据后,如何让自定义键盘使用它并显示在键盘视图中,就像内置的表情符号键盘一样?现在,我遵循应用扩展键盘:自定义键盘指南,这里只有少量信息。有没有关于如何在线创建自定义表情符号键盘的教程或指南?我正在尝试的当前代码如下:

class KeyboardViewController: UIInputViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        var error: NSError?
        let yanFile = NSBundle.mainBundle().pathForResource("yan", ofType: "json")
        let yanData = NSData(contentsOfFile: yanFile) as NSData
        let yanDict = NSJSONSerialization.JSONObjectWithData(yanData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
        println("dict: \(yanDict)") //print nothing in console

        // Perform custom UI setup here
        self.nextKeyboardButton = UIButton.buttonWithType(.System) as UIButton

        self.nextKeyboardButton.setTitle(NSLocalizedString("Next Keyboard", comment: "Title for 'Next Keyboard' button"), forState: .Normal)

    }
}

json如下:

{
    "list": 
    [
        {
            "tag": "laugh",
            "yan": 
            [
                "o(*≧▽≦)ツ┏━┓",
                "(/≥▽≤/)",
                "ヾ(o◕∀◕)ノ"
            ]
        },
        {
            "tag": "wanna",
            "yan": 
            [
                "✪ω✪",
                "╰(*°▽°*)╯",
                "≖‿≖✧",
                ">ㅂ<",
                "ˋ▽ˊ",
                "✪ε✪",
                "✪υ✪",
                "ヾ (o ° ω ° O ) ノ゙",
                "(。◕ˇ∀ˇ◕)",
                "(¯﹃¯)"
            ]
        }
    ]
}
4

2 回答 2

12

您可以通过单击新文件-> 查看来构建 xib 文件

1)在xib文件中创建一个uiview 320x216,你可以将任何你想要的控件拖放到其中

2)然后你可以像这样将笔尖加载到键盘的inputView中:

// Perform custom UI setup here
UIView *layout = [[[NSBundle mainBundle] loadNibNamed:@"keyboardXib" owner:self options:nil] objectAtIndex:0];
[self.inputView addSubview:layout];

3)我认为如果你构建一个 JSON 到键盘 api 你将键盘映射的 JSON 发送到你的应用程序并且应用程序知道如何相应地安排 inputView 上的键,那真是太棒了

如果您构建此项目,请告诉我们!

编辑:

4)您需要做的大部分工作是解析 JSON 并从 JSON uibuttons 显示您想要的内容,并决定它们将哪些文本插入到文本字段中

看看这个问题:How to parse a JSON file in swift?

祝你好运!

于 2014-06-29T21:41:08.817 回答
3

首先,您需要在 KeyboardViewController 中为键盘创建 UI。这取决于你如何自定义它,添加按钮、视图、手势等。(顺便说一下,视图的高度是有限的,标准键盘高度大小,所以不要试图让它更高它不会绘制)模板这是生成的,它只是一个示例,展示了如何在其中放置一个按钮。设置 UI 后,确保您有Next Keyboard Button,它是必需的。

关于Emoji,它不是真实的图像,它们只是后来被系统替换为图像的 unicode 字符。所以你不能传递图像,你可以提供的唯一输入是NSString [self.textDocumentProxy insertText:@"hello "]; // Inserts the string "hello " at the insertion point

更多细节可以在这里找到https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html

于 2014-06-23T12:24:32.967 回答