SwiftUI_TextField_Part2

こんにちはフリーランスの永田です。最近は法人化の手続きを開始しました。

SwiftUI案件を1月から実施予定で、現在技術を調査中です。

今回はキャレット動作 returnButtonを押下しましたら、水平移動する対応です。

挙動

gist:50a90621dd68e5353786a643315088b6

 

参考サイト

こちらのロジックを拝借させていただきました。ロジックの部分は、今まで通りのプログラムになります。

https://medium.com/@valv0/textfield-and-uiviewrepresentable-46a8d3ec48e2

プログラムがわかる場合は

changeHandlerを追えば、秒でわかると思います。

 

起動時にmakeUIViewメソッドで、tmpView.textFieldChangedHandler = changeHandlerのようにbindする部分を代入します。

 

既存のUITextFieldメソッドで実装しています。onCommitHandlerもbind処理をしていますが、Flowは同じです。

 

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String)

このメソッドは文字が1文字づつ変化する事に処理が行われます。 textFieldChangedHandler?(proposedValue as String)でbindしてchangeHandlerが呼ばれています。

 

 

return Buttonを押下時 これでキャレット textField.resignFirstResponder()

の実装をしています。

 

以上、とても簡単に解説しました
貴重なお時間お読みくださいまして、誠にありがとうございます。