Saya mencoba menambahkan bilah alat di dalam bilah judul ke aplikasi macOS menggunakan SwiftUI, sesuatu yang mirip dengan yang ditunjukkan di bawah ini.
Saya tidak dapat menemukan cara untuk mencapai ini menggunakan SwiftUI. Saat ini, saya memiliki bilah alat (yang hanya memiliki bidang teks) di dalam tampilan saya, tetapi saya ingin memindahkannya ke bilah judul.
Kode saya saat ini:
struct TestView: View {
var body: some View {
VStack {
TextField("Placeholder", text: .constant("")).padding()
Spacer()
}
}
}
Jadi, dalam kasus saya, saya perlu memiliki bidang teks di dalam bilah alat.
macos
swiftui
macos-catalina
Bijoy Thangaraj
sumber
sumber
Jawaban:
Pendekatan 1:
Ini dilakukan dengan menambahkan aksesori batang judul. Saya bisa menyelesaikan ini dengan memodifikasi file AppDelegate.swift. Saya harus menerapkan beberapa bantalan aneh agar terlihat benar.
AppDelegate.swift
TitlebarAccessory.swift
Hasil:
Pendekatan 2 (Metode alternatif):
Idenya di sini adalah melakukan bagian toolbar menggunakan storyboard dan aplikasi lainnya menggunakan SwiftUI. Ini dilakukan dengan membuat aplikasi baru dengan storyboard sebagai antarmuka pengguna. Lalu pergi ke storyboard dan hapus View Controller default dan tambahkan yang baru
NSHostingController
. Hubungkan Pengendali Hosting yang baru ditambahkan ke jendela utama dengan mengatur hubungannya. Tambahkan toolbar Anda ke jendela menggunakan pembangun antarmuka.Lampirkan kelas khusus ke Anda
NSHostingController
dan muat tampilan SwiftUI Anda ke dalamnya.Contoh kode di bawah ini:
Menggunakan pendekatan ini juga memberi Anda kemampuan untuk menyesuaikan toolbar.
sumber