相关疑难解决方法(0)

使用SwiftUI在键盘出现时将TextField向上移动?:iOS

TextField我的主箱里有七个ContentView。当用户打开键盘时,其中一些TextField隐藏在键盘框架下。所以TextField当键盘出现时,我想分别向上移动。

我已使用以下代码TextField在屏幕上添加。

struct ContentView : View {
    @State var textfieldText: String = ""

    var body: some View {
            VStack {
                TextField($textfieldText, placeholder: Text("TextField1"))
                TextField($textfieldText, placeholder: Text("TextField2"))
                TextField($textfieldText, placeholder: Text("TextField3"))
                TextField($textfieldText, placeholder: Text("TextField4"))
                TextField($textfieldText, placeholder: Text("TextField5"))
                TextField($textfieldText, placeholder: Text("TextField6"))
                TextField($textfieldText, placeholder: Text("TextField6"))
                TextField($textfieldText, placeholder: Text("TextField7"))
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

输出量

ios swift swiftui

31
推荐指数
13
解决办法
5968
查看次数

当键盘出现在 SwiftUI 中时向上滚动以查看 TextField

在我的用例中,我必须将 a 放在 aTextField中的可用项目下方List,通过使用它TextField,我们可以将项目添加到List.

最初,没有列表项(items数组为空)

这是一个最小的、可重现的示例

import SwiftUI

struct ContentView: View {
    @State var itemName = ""
    @State var items = [String]()

    var body: some View {
        NavigationView {
            List {
                ForEach(self.items, id: \.self) {
                    Text($0)
                }

                VStack {
                    TextField("Item Name", text: $itemName)
                        .textFieldStyle(RoundedBorderTextFieldStyle())

                    Button(action: {
                        self.items.append(self.itemName)
                        self.itemName = ""

                    }) {
                        Text("Add Item")
                    }
                }
            }
        .navigationBarTitle(Text("Title"))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以通过在 中键入一些内容TextField并单击“添加项目”来向列表中添加一个新项目Button,我们添加的每个项目都TextField …

swiftui swiftui-list

13
推荐指数
1
解决办法
4415
查看次数

如何使底部按钮跟随 SwiftUI 中的键盘显示

借助以下内容,我能够按照键盘显示屏上的按钮进行操作。但是,动画不能很好地应用。

如何在 SwiftUI 中显示键盘时显示完整列表

import SwiftUI
import Combine
import UIKit

class KeyboardResponder: ObservableObject {
    let willset = PassthroughSubject<CGFloat, Never>()
    private var _center: NotificationCenter
    @Published var currentHeight: CGFloat = 0
    var keyboardDuration: TimeInterval = 0

    init(center: NotificationCenter = .default) {
        _center = center
        _center.addObserver(self, selector: #selector(keyBoardWillShow(notification:)), name: UIResponder.keyboardWillShowNotification, object: nil)
        _center.addObserver(self, selector: #selector(keyBoardWillHide(notification:)), name: UIResponder.keyboardWillHideNotification, object: nil)
    }

    deinit {
        _center.removeObserver(self)
    }

    @objc func keyBoardWillShow(notification: Notification) {
        if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
            currentHeight = keyboardSize.height

            guard let duration:TimeInterval …
Run Code Online (Sandbox Code Playgroud)

swiftui

2
推荐指数
1
解决办法
1580
查看次数

标签 统计

swiftui ×3

ios ×1

swift ×1

swiftui-list ×1