小编Asp*_*pid的帖子

SwiftUI 中的 PreferredScreenEdgesDeferringSystemGestures

其中UIKit有一个选项可以禁用“Home”系统从底部向上滑动(不是完全禁用,但滑动会忽略第一次,并且如果用户确实想要的话,将强制用户重复它)。setNeedsUpdateOfScreenEdgesDeferringSystemGestures()实际上做对了我所需要的。

但如何在 SwiftUI 中达到同样的效果呢?

我尝试在 SceneDelegate 中调用此方法,如下所示:

        let window = UIWindow(windowScene: windowScene)
        let uiKitView = UIHostingController(rootView: contentView)
        uiKitView.setNeedsUpdateOfScreenEdgesDeferringSystemGestures()
        window.rootViewController = uiKitView
Run Code Online (Sandbox Code Playgroud)

preferredScreenEdgesDeferringSystemGestures但如果您不重写返回,它就不起作用.all 我无法重写以下计算属性UIHostingController

extension UIHostingController {
    open override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge{
        return [.all];
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到警告:

泛型类的扩展不能包含“@objc”成员

有人知道如何实现这一目标吗?

homescreen swipe ios swiftui

3
推荐指数
1
解决办法
1233
查看次数

目标中的 SwiftUI(自定义键盘)

在键盘扩展中找不到任何使用 SwiftUI 的示例。我创建了一个扩展,并尝试创建简单的扩展,SwiftUI Button无需任何操作(它只是打印调试文本)。但键盘上没有可见的按钮。是否可以创建 SwiftUI 自定义键盘?

struct SwiftUIButton: View{
    let action: () -> ()
    var body: some View{
        Button(action: action){Text("Tap me")}
    }
}

class KeyboardViewController: UIInputViewController {
    
    @IBOutlet var nextKeyboardButton: UIButton!


//1.insert this: SwiftUIButton is a simple Button View
    var swiftUIButtonView: SwiftUIButton!
    //...
    override func viewDidLoad() {
        super.viewDidLoad()
        

        // Perform custom UI setup here

        //2. try to insert my SwiftUI View
        let swiftUIButtonView = SwiftUIButton(action: {print("test")})
        let vc = UIHostingController(rootView: swiftUIButtonView)
        //I tried that with no success
        //guard …
Run Code Online (Sandbox Code Playgroud)

ios swift custom-keyboard swiftui

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

标签 统计

ios ×2

swiftui ×2

custom-keyboard ×1

homescreen ×1

swift ×1

swipe ×1