【Swift】画像をクリップボードにコピーしてペーストするまで

画像をコピーしてペーストする方法を調べた時に、下記のような方法をみつけたが、これだとうまく動かない。

let image = UIImage(named: "logo.jpg")
UIPasteboard.generalPasteboard().image = image;

なので、下記のような方法で実装する。
カスタムキーボードから利用する際は、予めフルアクセスの許可をとる必要があるので、権限を確認する処理も追記した。

    //タップイベント
    func onClickMyButton(sender: UIButton) {
        if(!self.isOpenAccessGranted()){
            //フルアクセスが許可されていない場合。
            println("フルアクセスが許可されていません")
        }
        if let textDocumentProxy = self.textDocumentProxy as? UITextDocumentProxy {
            autoreleasepool {
                let image = UIImage(named: "logo.jpg")
                
                //the Pasteboard is nil if full access is not granted
                let pbWrapped: UIPasteboard? = UIPasteboard.generalPasteboard()
                if let pb = pbWrapped {
                    var type = UIPasteboardTypeListImage[0] as! String
                    if (count(type) > 0) && (image != nil) {
                        pb.setData(UIImagePNGRepresentation(image), forPasteboardType: type)
                        var readDataWrapped: NSData? = pb.dataForPasteboardType(type)
                        if let readData = readDataWrapped {
                            var readImage = UIImage(data: readData, scale: 2)
                            println("\(image) == \(pb.image) == \(readImage)")
                        }
                    }
                }
            }
        }
    }
    
    
    //フルアクセスがきちんと許可されているか確認するためのメソッド
    func isOpenAccessGranted() -> Bool {
        return UIPasteboard.generalPasteboard().isKindOfClass(UIPasteboard)
    }

参考:http://stackoverflow.com/questions/27307156/copy-image-with-uipasteboard-swift

【Swift】カスタムキーボードで削除ボタンを実装する

カスタムキーボードで、削除ボタン(バックスペースボタン)を実装しようといろいろ調べてみると、単純にaddTargetで削除処理を呼び出せばいいというわけではなく、削除ボタンを押し続けた際の動きなどいろいろ考慮しないといけないようで、少しSwift初心者にはハードルが高そうだ。

ネット上にいいサンプルコードがないか探してみたところ、GitHubにうってつけのコードを発見。

https://github.com/archagon/tasty-imitation-keyboard

英語キーボードを全てコードで実装しているらしい(すごい)。各アイコンもベジエ曲線などを使いを見事に表現している。

とりあえず、削除の処理の部分のみを抜粋し、自分のプロジェクトに適用してみる。

“【Swift】カスタムキーボードで削除ボタンを実装する” の続きを読む

【Swift】カスタムキーボードで地球儀アイコンを表示させる

iOSのシステムキーボードの切替ボタンはこのように地球になっている。
スクリーンショット 2015-08-21 22.31.14

カスタムキーボードを作る際は、この切替ボタンがデフォルトではテキストになっており、地球アイコンを使いたいなら自前で用意する必要がある。
その方法として1,絵文字を使う方法、2,ベジェ曲線を使って描画する方法を記す

“【Swift】カスタムキーボードで地球儀アイコンを表示させる” の続きを読む