Swift로 "아-네"버튼을 우울하고 "아-네"라고 입력되는 키보드를 만든다

9311 단어 Swift키보드

일반적으로 앱 프로젝트 만들기







해당 대상으로 Custom Keyboard를 만듭니다.



File > New > Target을 선택



Custom Keyboard를 선택(겨우!)



제품 이름을 적당하게 클릭한다.



코딩하겠습니다.



디폴트로 만들어지고 있는 UIInputViewController 를 상속한 KeyboardViewController 를 편집해 갑니다.

"아-네"라고 입력하면 "아-네"밖에 나오지 않는 초심플 키보드이므로 한 번 청소합니다.

청소한 결과가 아래와 같습니다.

KeyboardViewController.swift
import UIKit

class KeyboardViewController: UIInputViewController {

    override func updateViewConstraints() {
        super.updateViewConstraints()

        // Add custom view sizing constraints here
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated
    }

    override func textWillChange(textInput: UITextInput) {
        // The app is about to change the document's contents. Perform any preparation here.
    }

    override func textDidChange(textInput: UITextInput) {
        // The app has just changed the document's contents, the document context has been updated.
    }

}

다음으로 nib로 Keyboard view를 만듭니다.

만든 AneKeyboard.xib를 키보드 View로 만들기 위해 KeyboardViewController의 viewDidLoad에 다음을 추가합니다.

KeyboardViewController.swift
    override func viewDidLoad() {
        super.viewDidLoad()
        var v = UINib(nibName:"AneKeyboard", bundle:nil).instantiateWithOwner(self,options:nil)[0] as UIView
        self.inputView.addSubview(v)
    }

nib 파일을 만들어 적절하게 버튼을 배치하십시오.



File's Owner로 KeyboardViewController를 선택합니다.
이렇게 하면 Ctrl+drag 등으로 쉽게 bind할 수 있게 됩니다.



「아네」버튼, 「Next」버튼을 KeyboarViewController에 바인드 해 각각 아래의 함수를 만듭니다.

KeyboardViewController.swift


    @IBAction func pushAne(sender: AnyObject) {
        // 「あーね」ボタン押下
    }

    @IBAction func pushNext(sender: AnyObject) {
        // 「Next」ボタン押下
    }

버튼을 눌렀을 때의 처리를 구현합니다.

KeyboardViewController.swift
    @IBAction func pushAne(sender: AnyObject) {
        // 「あーね」ボタン押下
        // こんな感じでテキストを挿入できます
        var proxy = textDocumentProxy as UITextDocumentProxy
        proxy.insertText("あーね")
    }

    @IBAction func pushNext(sender: AnyObject) {
        // 「Next」ボタン押下
        // 次のキーボードへ(これは必ず入れないといけないらしい)
        self.advanceToNextInputMode()
    }

이상으로 구현 완료!

사용해 보자!



keyboard 그 자체의 프로젝트 그대로 시작하려고 하면 아래와 같은 일이 됩니다.

???



실행하는 프로젝트는 제일 처음에 작성한 피 Target인 프로젝트가 됩니다.

실행하면 프로젝트가 시작되므로 홈 키 (Command + Shift + H)를 눌러 홈으로 갑시다.
그런 다음 Settings -> General -> Keyboard -> Keyboards로 이동하여 Add New Keyboard...를 선택합니다.



화면 중앙의 우리가 "ane"을 선택합니다.



이것으로 키보드 설정 완료입니다.

이제 Spotlight에서 시도해 봅시다.



할 수 있었습니다!

좋은 웹페이지 즐겨찾기