まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

Swift ⌨️のAccessoryViewでUIBarButtonItemのタイトルに文字を設定する方法

f:id:rils_k:20200813090025j:plain

キーボードのアクセサリーヴューにtoolbarをつけている人はこういうのがスタンダードな実装かなと思いますが

左側のキャンセルボタンのようにUIBarButtonItem.SystemItem.cancelを設定してしまうと後からタイトルを変更する事ができません

 

なので入力完了ボタンの実装のように

let doneButton:UIBarButtonItem = UIBarButtonItem()
        doneButton.target = self
        doneButton.action = #selector(self.closeKeyboard)

分けて書きUIBarButtonItem.SystemItemを設定せずにいきましょう、そうすると

タイトルの文字が変更できました;

/textviewの上のdoneボタンcanselボタンを作る

        let toolBar:UIToolbar = UIToolbar()

        toolBar.barStyle = UIBarStyle.default

        toolBar.sizeToFit()

        

        let spacer:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem:

SystemItem.flexibleSpace, target: self, action: nil)

        let doneButton:UIBarButtonItem = UIBarButtonItem()

        doneButton.target = self

        doneButton.action = #selector(self.closeKeyboard)

        let canselButton:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.cancel, target: self, action: #selector(self.canselKeyboard))

        doneButton.title = "入力完了"

        

        let toolBarItems = [canselButton,spacer,doneButton]

        toolBar.setItems(toolBarItems, animated: true)

        textView1.inputAccessoryView = toolBar