SwiftUI এ মুছে ফেলা এবং অক্ষম করার জন্য কনটেক্সটমেনু বোতামগুলি কীভাবে কনফিগার করবেন?


9

আমি বোতামটি কনফিগার করার চেষ্টা করেছি contextMenu, তবে এটি কাজ করছে না।

Text("A label that have context menu")
    .contextMenu {
        Button(action: {
            // remove it
        }) {
            Text("Remove")
                .foregroundColor(.red) // Not working
            Image(systemName: "trash")
        }.disabled(true) // Not working
    }

আমি কি আছে:

 কাজের উপস্থিতি নেই

আমি যা চাইছি: ( বোতামগুলি মুছুন এবং কল করুন )

ডেমো

আমি UIActionনিম্নলিখিতগুলির মতো একটি তৈরি UIKitকরব তবে এটিকে সুইফটইউতে আনার জন্য আমি কোনও সংশোধক বা কোনও উপায় খুঁজে পাচ্ছি না :

let delete = UIAction(title: "Remove", image: UIImage(systemName: "trash"), attributes: .destructive) { action in
    // remove it
}

আপনি কি উত্তর খুঁজে পেয়েছেন?
Andrea Miotto

দেখে মনে হচ্ছে এটি এখনও সম্ভব নয় (খাঁটি SwiftUI সহ)।
মোজতাবা হোসেইনি

উত্তর:


-2

কোনও বুলিয়ান টগলিং যা নির্ধারণ করে যে দৃশ্যটি দৃশ্যমান কিনা তা নির্ধারণ করে:

struct ContentView: View {
    @State var textVisible = true
    var body: some View {
        Group {
            if textVisible {
                Text("Hello World")
                .contextMenu {
                    Button(action: {
                        self.textVisible = false
                    }) {
                        HStack {
                            Text("Remove")
                            Image(systemName: "trash")
                        }
                    }
                }
            }
        }
    }
}

অবশ্যই, যেহেতু প্রাসঙ্গিক মেনুটি Textমুছে ফেলা হয়েছে তার সাথে সংযুক্ত , তাই Buttonআপনার বুলিয়ান টোগল করে এমন কিছু (উদাহরণস্বরূপ ) না থাকলে এটি স্থায়ীভাবে মুছে ফেলা হবে ( textVisibleএই ক্ষেত্রে)।

সম্পাদনা করুন : ওপিতে কনটেক্সট মেনুতে অক্ষম / ধ্বংসাত্মক (ধূসর / লাল অগ্রভূমির রঙ) কীভাবে বোতামগুলি তৈরি করা যায় তা জানতে চেয়েছিলেন, তবে আমি বিশ্বাস করি যে 20 ই অক্টোবর, 2019-এ সুইফটুইতে একটি বাগ রয়েছে যা প্রসঙ্গে কোনও বোতামের অনুমতি দেয় না মেনুতে লাল বাদে অন্য কোনও রঙ হতে পারে। অন্যথায়, বোতামটি .disabled(true)ধূসর বর্ণের হিসাবে সেট করা এবং এটিকে অক্ষম করতে হবে এবং বোতামটির সম্মুখভূমির রঙটি লাল ( foregroundColor(.red)) এ সেট করা বোতামটিকে ধ্বংসাত্মক করে তুলবে।


আপনি উত্তর বেশিরভাগই ভাল। শুধু অন্য অংশ প্রয়োজন হয় না।
E.Coms

1
আপনি আমার প্রশ্ন ভুল বুঝেছেন। আমি বোতামগুলি ধ্বংসাত্মক (লাল) বা অক্ষম (ধূসর এবং নিষ্ক্রিয়)
মোজতাবা হোসেইনি

1
@ মজতাবা হোসেসিনি ভুল ব্যাখ্যা দেওয়ার জন্য দুঃখিত! আমি মনে করি এখনই সুইফটইউয়ের একটি বাগ রয়েছে যেখানে প্রসঙ্গ মেনু বিকল্পগুলি রঙ পরিবর্তন করতে পারে না, সেগুলি কেবল কালো হতে পারে। আপনি একটি বাগ রিপোর্ট ফাইল করা সুবিধাজনক বলে মনে করতে পারেন।
আরপিটেল 99

যারা নিম্নমানের লোকদের কাছে: আমি আমার উত্তর পোস্ট করার পরে ওপি তার প্রশ্ন পরিবর্তন করেছিল । প্রশ্নের প্রাথমিক শব্দটি মনে হয়েছিল যে ওপিকে কেবল প্রসঙ্গ মেনু দিয়ে কোনও ভিউ মুছতে হয় তা জানতে হবে। আমি আমার উত্তরটি মুছে ফেলছি না কারণ এটি এই প্রশ্নের একমাত্র উত্তর এবং আমি এখনও মনে করি এটি প্রশ্নের সাথে প্রাসঙ্গিক এবং এটি মানুষের পক্ষে কার্যকর হতে পারে।
আরপিটেল 99
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.