- Create
App
project inXcode
withSwiftUI
interface. - Allow outgoing + incoming internet by pressing the project name ->
Signing & Capabilities
->App sandbox
.
Last active
January 28, 2024 17:08
-
-
Save thewh1teagle/fe95268312da677b4fd7c57447203898 to your computer and use it in GitHub Desktop.
Multiwebview in swiftU
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import SwiftUI | |
import WebKit | |
struct WebView: NSViewRepresentable { | |
let request: URLRequest | |
func makeNSView(context: Context) -> NSView { | |
let containerView = NSView() | |
let webView1 = WKWebView() | |
webView1.load(request) | |
let webView2 = WKWebView() | |
webView2.load(request) | |
// Set the size for the WKWebViews | |
let webViewSize = NSSize(width: 400, height: 300) | |
webView1.frame = NSRect(origin: .zero, size: webViewSize) | |
webView2.frame = NSRect(origin: NSPoint(x: webViewSize.width + 10, y: 0), size: webViewSize) | |
// Add the WKWebViews as subviews to the containerView | |
containerView.addSubview(webView1) | |
containerView.addSubview(webView2) | |
return containerView | |
} | |
func updateNSView(_ nsView: NSView, context: Context) { | |
// Update the WKWebViews if needed | |
if let webView1 = nsView.subviews[0] as? WKWebView, | |
let webView2 = nsView.subviews[1] as? WKWebView { | |
webView1.load(request) | |
webView2.load(request) | |
} | |
} | |
} | |
struct ContentView: View { | |
var body: some View { | |
HStack { | |
WebView(request: URLRequest(url: URL(string: "https://google.com")!)) | |
} | |
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) | |
} | |
} | |
struct ContentView_Previews: PreviewProvider { | |
static var previews: some View { | |
ContentView() | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment