Reputation: 1
How can I add a keyboard toolbar button, which shows the Format sheet by one click. Apple Notes has this functionality in their app like this.
I have tried this.
import SwiftUI
import UIKit
struct SimpleTextView: UIViewControllerRepresentable {
@Binding var text: String
func makeUIViewController(context: Context) -> ViewController {
let viewController = ViewController()
viewController.text = text
return viewController
}
func updateUIViewController(_ uiViewController: ViewController, context: Context) {
uiViewController.updateTextView(text: text)
}
}
import UIKit
import SwiftUI
import SwiftData
class ViewController: UIViewController {
var text: String = "Implementing a Rich Text Editor has become a nightmare for iOS developers so far. Finally Apple announced an exciting update to UITextView for rich text editing."
var formatSheetVisible: Bool = false
lazy var textView: UITextView = {
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 300, height: 500))
textView.center = view.center
textView.font = .systemFont(ofSize: 21)
textView.borderStyle = .none
textView.allowsEditingTextAttributes = true
return textView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(textView)
textView.text = text
}
func updateTextView(text: String) {
textView.text = text
}
}
#Preview {
ViewController()
}
But I have to tap format and then tap more... and then the Format sheet will present.
Upvotes: 0
Views: 48
Reputation: 1595
Use can customise using .toolbar as per your requirement. Like this:
struct ContentView: View {
@State private var name = "Taylor"
var body: some View {
TextField("Enter your name", text: $name)
.textFieldStyle(.roundedBorder)
.toolbar {
ToolbarItemGroup(placement: .keyboard) {
Button("Click me!") {
print("Clicked")
}
}
}
}
}
Reference: https://www.hackingwithswift.com/quick-start/swiftui/how-to-add-a-toolbar-to-the-keyboard
Upvotes: 0