ইউআইবাটন সমস্ত লক্ষ্য-ক্রিয়া সরিয়ে দেয়


341

কনট্রোলএভেন্টস: আমি একটি ইউআইবাটনে একাধিক লক্ষ্য-অ্যাকশন-যুক্ত করেছি। আমি কোনও কিছু হ্রাস না করে এক সাথে এই সমস্তগুলি সরিয়ে ফেলতে চাই। আমি তখন নতুন টার্গেট সেট করব।

এটি কি সম্ভব এবং আমি কীভাবে এটি ব্যবহার করব?

উত্তর:


824

কল অপসারণ লক্ষ্য: ক্রিয়া: forControlEvents:, লক্ষ্য পূরণের জন্য শূন্য, কর্মের জন্য NULL, এবং সমস্ত বিট সেট করে একটি নিয়ন্ত্রণ মুখোশ ব্যবহার (UIControlEventAllEvents)।

উদ্দেশ্য গ

[someControl removeTarget:nil 
                   action:NULL 
         forControlEvents:UIControlEventAllEvents];

সুইফট 2

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

সুইফট 3

button.removeTarget(nil, action: nil, for: .allEvents)

4
ভকভগক! আমি মনে করি পুরো লিঙ্কটি এখানে (অর্থাত্ বিভাগে): " বিকাশকারী.এপ্লে /
আইফোন

1
progrmr এর পরামর্শ অবশ্যই কাজ করে। উত্তরের সাথে যুক্ত করার জন্য আমার প্রয়োজন মতো একটি কোড স্নিপেট রয়েছে: [বোতাম সরানোর ট্র্যাজেট: শূন্য পদক্ষেপ: ননাল ফর কন্ট্রোলএভেন্টস: ইউআইসিএন্ট্রোলটেন্টটিউচইপআইন্সিড];
এসকে 9

6
একদিকে: -লালগার্টস ইনস্ট্যান্স পদ্ধতিটি সমস্ত উদাহরণের লক্ষ্যগুলির একটি এনএসসিট প্রদান করে (যদি না হয় তবে) n
এসকে 9

3
পারফেক্ট! ঠিক আমি যা খুঁজছিলাম: ডি
টোটুমাস ম্যাক্সিমাস

1
শুধুমাত্র একই ভাষায় পৃথক হয়ে ঠিক একই উত্তরের সাথে প্রতিদ্বন্দ্বী উত্তর রয়েছে বলে সুইফট 2 এবং 3 দিয়ে আপডেট হয়েছে।
পিটার ডিউইজ

92

সুইফট 2 এ @ প্রগ্রেমার উত্তর:

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

এবং সুইফট 3:

button.removeTarget(nil, action: nil, for: .allEvents)

দ্রষ্টব্য: সুইফ্টের নেই NULL, তাই আমি এটির পরিবর্তে পরীক্ষা করেছি nilএবং এটি ঠিকঠাক কাজ করছে বলে মনে হচ্ছে।


5
সুইফট 3 এর জন্য: ".এলএভেন্টস" এখন ".এলএভেন্টস" (ছোট ছোট 'ক' সহ):removeTarget(nil, action: nil, for: .allEvents)
সাশো

আপনার নোট সংক্রান্ত: বাস্তবিক, আমি বিশ্বাস করি আপনি পাস পারে পারেন nilবা NULLকরতে উভয় খুব উদ্দেশ্য সি মধ্যে প্রথম ও দ্বিতীয় আর্গুমেন্ট, এবং এটি কাজ করবে। আমি বিশ্বাস করি যে উভয়ই সংজ্ঞায়িত হয়েছে (void*) 0(বা খুব কম সময়ে সমান হিসাবে মূল্যায়ন)।
নিকোলাস মিয়ারি

@ সাশো আমি সুইফট 3 :-) (নতুন পদ্ধতি / যুক্তি নামকরণের নিয়মগুলির কারণে) আপগ্রেড করার সময় কতগুলি উত্স ফাইলের আকার কমে যায় (গড় হিসাবে) তার কিছু পরিসংখ্যান দেখতে আগ্রহী।
নিকোলাস মিয়ারি

যেহেতু এটি একটি ভিন্ন ভাষায় একই উত্তর, এবং ভাষা এই প্রশ্নে ট্যাগ করা হয় না, এটি @ প্রোগ্রামার উত্তরের সম্পাদনা হওয়া উচিত।
পিটার ডিউইজ


3

সুইফট 2:

actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

সুইফট 3 এবং 4:

actionButton.removeTarget(nil, action: nil, for: .allEvents)

উদ্দেশ্য গ:

[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];

আশা করি এটা সাহায্য করবে.


2
- removeTarget:action:forControlEvents:

এই পদ্ধতিটি নির্দিষ্ট লক্ষ্য অবজেক্টে ইভেন্ট বিতরণ বন্ধ করে দেয়।

  1. টার্গেট প্যারামিটারে একটি বৈধ অবজেক্ট নির্দিষ্ট করে , এই পদ্ধতিটি সেই বস্তুর সাথে সম্পর্কিত সমস্ত ক্রিয়াকলাপগুলিতে নির্দিষ্ট ইভেন্টগুলির সরবরাহ বন্ধ করে দেয়।

  2. টার্গেট প্যারামিটারের জন্য নিল নির্দিষ্ট করে , এই পদ্ধতিটি সমস্ত টার্গেট অবজেক্টগুলির সমস্ত ক্রিয়াকলাপগুলিতে এই ইভেন্টগুলি সরবরাহ করতে বাধা দেয়

    উদ্দেশ্য গ:

    [_myButton removeTarget:  //any validObject (or) nil
                  action:nil
        forControlEvents:UIControlEventAllEvents]; 

    দ্রুতগতি:

    myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)

আরও তথ্যের জন্য https://developer.apple.com/library/ios/docamentation/UIKit/References/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:for : নিয়ন্ত্রণের জন্য :

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.