1

Bluetoothキーボードを使用しているUIKeyCommandsユーザーがCMD + B太字とCMD + I斜体に使用できるようにするために使用しています。

私はここでこれを成功させることができました...

@objc func boldText() {
        textViewOutlet.font = UIFont(name:"Avenir-Heavy", size: 16)
    }
    @objc func italicText() {
        textViewOutlet.font = UIFont(name:"AvenirNext-Italic", size: 16)
    }

    // enable functions

    override var keyCommands: [UIKeyCommand]? {
        return [
            UIKeyCommand(input: "b", modifierFlags: .command, action: #selector(boldText), discoverabilityTitle: "Bold"),
            UIKeyCommand(input: "i", modifierFlags: .command, action: #selector(italicText), discoverabilityTitle: "Italic")
        ]
    }

ただし、これらのキーコマンドを使用すると、太字または斜体の前に入力されたテキストだけが再び「解放」されるのではなく、テキストビュー全体が太字または斜体に変更されます。

どんな助けでも大歓迎です!

次のようなものが必要だと思います:

@objc func italicText() {
    textViewOutlet.font.FROMTHECURRENTLOCATION UNTIL IT'S DISENGAGED = UIFont(name:"AvenirNext-Italic", size: 16)
}

編集 :

これをさらに調べてみると、使用できると思われる入力属性と呼ばれる方法があることがわかりました。この回答の詳細

私はこれを試しました:

 @objc func boldText() {
        textViewOutlet.typingAttributes = UIFont(name:"Avenir-Heavy", size: 16)
    }

しかし、私はその方法が正しいとは思いません。フォントを設定するためにtypingAttributesを使用する方法を知っている人はいますか?

アップデート :

私は .typingattributes を使用してこれを解決し、ここで答えを適応させました。

を使用して、ユーザーがテキストを押した時点から太字/斜体/異なる色などにする機能を実現できます。

@objc func boldText() {
        let makeBold: [String : Any] = [
            NSAttributedStringKey.font.rawValue:  UIFont(name: "Avenir-Heavy", size: 15.0)!
        ]
        textViewOutlet.typingAttributes = makeBold
        }
4

0 に答える 0