পন্থা 1:
এটি একটি শিরোনামবার আনুষাঙ্গিক যোগ করে করা হয়। আমি AppDelegate.swift ফাইলটি সংশোধন করে এটি সম্পন্ন করতে সক্ষম হয়েছি। এটিকে সঠিক দেখানোর জন্য আমাকে কিছু অদ্ভুত প্যাডিং প্রয়োগ করতে হয়েছিল।
AppDelegate.swift
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Create the SwiftUI view that provides the window contents.
let contentView = ContentView()
// Create the titlebar accessory
let titlebarAccessoryView = TitlebarAccessory().padding([.top, .leading, .trailing], 16.0).padding(.bottom,-8.0).edgesIgnoringSafeArea(.top)
let accessoryHostingView = NSHostingView(rootView:titlebarAccessoryView)
accessoryHostingView.frame.size = accessoryHostingView.fittingSize
let titlebarAccessory = NSTitlebarAccessoryViewController()
titlebarAccessory.view = accessoryHostingView
// Create the window and set the content view.
window = NSWindow(
contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
backing: .buffered, defer: false)
window.center()
window.setFrameAutosaveName("Main Window")
// Add the titlebar accessory
window.addTitlebarAccessoryViewController(titlebarAccessory)
window.contentView = NSHostingView(rootView: contentView)
window.makeKeyAndOrderFront(nil)
}
TitlebarAccessory.swift
import SwiftUI
struct TitlebarAccessory: View {
var body: some View {
TextField("Placeholder", text: .constant(""))
}
}
ফলাফল:
পদ্ধতির 2 (বিকল্প পদ্ধতি):
এখানে ধারণাটি হ'ল স্টোরিবোর্ড ব্যবহার করে সরঞ্জামদণ্ডের অংশটি করা এবং বাকী অ্যাপটি সুইফটইউআই ব্যবহার করে। এটি ব্যবহারকারী ইন্টারফেস হিসাবে স্টোরিবোর্ড সহ একটি নতুন অ্যাপ্লিকেশন তৈরি করে করা হয়। তারপরে স্টোরিবোর্ডে যান এবং ডিফল্ট ভিউ কন্ট্রোলার মুছুন এবং একটি নতুন যুক্ত করুন NSHostingController
। নতুন যুক্ত হওয়া হোস্টিং কন্ট্রোলারটিকে তার সম্পর্ক স্থাপন করে মূল উইন্ডোতে সংযুক্ত করুন। ইন্টারফেস বিল্ডার ব্যবহার করে উইন্ডোতে আপনার সরঞ্জামদণ্ডটি যুক্ত করুন।
আপনার সাথে একটি কাস্টম শ্রেণি সংযুক্ত করুন NSHostingController
এবং এতে আপনার সুইফটুআই ভিউ লোড করুন।
নীচের উদাহরণ কোড:
import Cocoa
import SwiftUI
class HostingController: NSHostingController<SwiftUIView> {
@objc required dynamic init?(coder: NSCoder) {
super.init(coder: coder, rootView: SwiftUIView())
}
}
এই পদ্ধতির ব্যবহার আপনাকে সরঞ্জামদণ্ডটি কাস্টমাইজ করার ক্ষমতাও দেয়।