iOS 8自定义键盘

yon*_* ho 12 keyboard ios swift ios8 ios-app-extension

我正在尝试构建自定义键盘,它就像一个表情符号键盘,但键盘的数据来自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)

    }
}
Run Code Online (Sandbox Code Playgroud)

json如下:

{
    "list": 
    [
        {
            "tag": "laugh",
            "yan": 
            [
                "o(*???)????",
                "(/???/)",
                "?(o???)?"
            ]
        },
        {
            "tag": "wanna",
            "yan": 
            [
                "???",
                "?(*°?°*)?",
                "????",
                ">?<",
                "???",
                "???",
                "???",
                "? (o ° ? ° O ) ??",
                "(???????",
                "?¯?¯?"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

det*_*man 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];
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:

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

看看这个问题:如何在swift中解析JSON文件?

祝好运!