如何在swiftUI中将TextInput用于WatchOS

时间:2019-07-05 12:40:12

标签: watchkit apple-watch swiftui

通常,我将使用presentTextInputControllerWithSuggestions()来显示TextInput字段。但这在swiftUI中不可用,因为它是WKInterfaceController的功能。我是否必须为此使用WKInterfaceController? 我在文档中找不到任何内容。

2 个答案:

答案 0 :(得分:0)

这将通过SwiftUI中的TextField完成。

答案 1 :(得分:0)

您可以在 SwiftUI 中使用 View 扩展:

extension View {
    typealias StringCompletion = (String) -> Void
    
    func presentInputController(withSuggestions suggestions: [String], completion: @escaping StringCompletion) {
        WKExtension.shared()
            .visibleInterfaceController?
            .presentTextInputController(withSuggestions: suggestions,
                                        allowedInputMode: .plain) { result in
                
                guard let result = result as? [String], let firstElement = result.first else {
                    completion("")
                    return
                }
                
                completion(firstElement)
            }
    }
}