কাস্টম বোতামের সাহায্যে SwiftUI কীবোর্ড প্রসারিত করুন


10

আমি সুইফটুআই নম্বরপ্যাডে একটি কী বা বোতাম যুক্ত করার উপায় খুঁজতে চেষ্টা করছি। আমি যে রেফারেন্সগুলি পেয়েছি কেবল এটিই সম্ভব নয়। সুইফ্ট ওয়ার্ল্ডে আমি কীবোর্ডটি খারিজ করতে বা অন্য কোনও কার্য সম্পাদন করতে একটি বোতামের সাহায্যে একটি সরঞ্জামদণ্ড যুক্ত করেছি added

এমনকি আমি উপরের বোতামটি দিয়ে একটি জেডস্ট্যাক ভিউ তৈরি করব তবে আমি নিজের ভিউতে নম্বরপ্যাড যুক্ত করার কোনও উপায় খুঁজে পাচ্ছি না।

এই ক্ষেত্রে আমি যা করার চেষ্টা করছি তা হ'ল ডেটা প্রবেশের সময় নম্বরপ্যাডটি বরখাস্ত করা হবে। আমি প্রথমে ট্যাপগুলিতে বরখাস্ত করার জন্য সিনডেলিগেটটি সংশোধন করার চেষ্টা করেছি, তবে কেবলমাত্র যদি আমি অন্য পাঠ্য বা টেক্সটফিল্ড ভিউতে ট্যাপ করি তবে দৃশ্যটিতে খোলা জায়গায় নয়।

window.rootViewController = UIHostingController(rootView: contentView.onTapGesture {
    window.endEditing(true)
})

আদর্শভাবে, আমি নীচের বাম স্থানে একটি সম্পন্ন চাবি যুক্ত করব। দ্বিতীয় সেরা একটি সরঞ্জামদণ্ড যদি এটি সুইফটআইআই-তে করা যায় তবে যুক্ত করুন।

এখানে চিত্র বর্ণনা লিখুন

কোন গাইডেন্স প্রশংসা করা হবে।

এক্সকোড সংস্করণ 11.2.1 (11B500)

উত্তর:


6

ইউআইআইআরসিপ্রেসনেবল প্রোটোকল ব্যবহার করে সমস্যার সমাধান করুন

 struct TestTextfield: UIViewRepresentable {
    @Binding var text: String
    var keyType: UIKeyboardType
    func makeUIView(context: Context) -> UITextField {
        let textfield = UITextField()
      textfield.keyboardType = keyType
        let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: textfield.frame.size.width, height: 44))
        let doneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(textfield.doneButtonTapped(button:)))
        toolBar.items = [doneButton]
        toolBar.setItems([doneButton], animated: true)
        textfield.inputAccessoryView = toolBar
        return textfield
    }

    func updateUIView(_ uiView: UITextField, context: Context) {
        uiView.text = text

    }
}

extension  UITextField{
    @objc func doneButtonTapped(button:UIBarButtonItem) -> Void {
       self.resignFirstResponder()
    }

}

সামগ্রী দর্শন ব্যবহার করে

struct ContentView : View {
@State var text = ""

var body: some View {
    TestTextfield(text: $text, keyType: UIKeyboardType.phonePad)
        .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 50)
        .overlay(
            RoundedRectangle(cornerRadius: 16)
                .stroke(Color.blue, lineWidth: 4)
    )
}

}


1
আমি খাঁটি SwiftUI সমাধানের জন্য আশা করছিলাম - তবে আমি মনে করি আপনি সঠিক - এটির একটি নেই।
ব্যবহারকারী2698617

উদাহরণস্বরূপ কোনও সমন্বয়কারীকে প্রয়োগ করা makeCoordinator()এবং প্রতিনিধি এবং নির্বাচক টার্গেটের জন্য এটি ব্যবহার করা আরও ভাল। আমি অন্যান্য মন্তব্যের সাথে একমত, এখনও খাঁটি SwiftUI সমাধানের উপস্থিতি বলে মনে হচ্ছে না।
বুর্জান ওলাভ রউদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.