আপনি কীভাবে এক্সকোডে প্রোগ্রামে কোনও বোতামে কোনও ক্রিয়া যুক্ত করবেন


105

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

উত্তর:


222

এটা চেষ্টা কর:

সুইফট 4

myButton.addTarget(self,
                   action: #selector(myAction),
                   for: .touchUpInside)

উদ্দেশ্য গ

[myButton addTarget:self 
             action:@selector(myAction) 
   forControlEvents:UIControlEventTouchUpInside];

আপনি অ্যাপলের ডকুমেন্টেশনে তথ্যের একটি সমৃদ্ধ উত্স খুঁজে পেতে পারেন। কটাক্ষপাত আছে UIButton এর ডকুমেন্টেশন , এটা প্রকাশ করবে UIButton বংশের একজন UIControl, যা পদ্ধতি প্রয়োগ লক্ষ্যমাত্রা যোগ

-

তোমার বেতন মনোযোগ করতে হবে কিনা অ্যাড কোলন বা না পরে myActionমধ্যে action:@selector(myAction)

রেফারেন্স এখানে ।


আমার বাটন টিপলে আমি যদি নির্বাচককে একটি প্যারামিটারটি পাস করতে চাই তবে কী হবে (উদাহরণস্বরূপ, ইউআইটিএবলভিউসিলের ভিতরে আমার একটি বোতাম আছে এবং যখন ঘরের বোতামটি টিপানো হয় তখন আমি সেই কক্ষে বস্তুটি পাস করতে চাই)?
এসেক্সেপডস

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

1
আমি দেখি. এটা বোধগম্য. আমি মনে করি আপনি কী বলছেন তা আমি বুঝতে পেরেছি। টিপ নিকের জন্য ধন্যবাদ!
এসিএকপ্যাডস

কেউ দ্রুত এটি অনুবাদ করতে পারেন?

23

দ্রুত উত্তর:

myButton.addTarget(self, action: "click:", for: .touchUpInside)

func click(sender: UIButton) {
    print("click")
}

ডকুমেন্টেশন: https://developer.apple.com/docamentation/uikit/uicontrol/1618259- অ্যাডটারেজ


ইউআইসিএন্ট্রোল.এডিডিটারেটে কলটিতে "ক্লিক" করার পরে ":" কী?
ডাম্বলডেড

1
নির্বাচকদের :ফাংশন আর্গুমেন্টের জন্য স্থানধারক হিসাবে রয়েছে। যেহেতু যুক্তি clickগ্রহণ করে sender, :এটি নির্বাচক স্ট্রিংয়ের সাথে প্রতিস্থাপন করা হয় ।
এটান

এটি সম্প্রতি আমার জন্য সুইফট ৩-এর জন্য কাজ করেছে। ডান ট্র্যাকের নিচে
uplearnedu.com

14
CGRect buttonFrame = CGRectMake( 10, 80, 100, 30 );
        UIButton *button = [[UIButton alloc] initWithFrame: buttonFrame];
        [button setTitle: @"My Button" forState: UIControlStateNormal];
        [button addTarget:self action:@selector(btnSelected:) forControlEvents:UIControlEventTouchUpInside];
        [button setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[view addSubview:button];

2 বা আরও ক্রিয়া যুক্ত করা কি সম্ভব?
ইরাসমো অলিভেরা

9

এটা চেষ্টা কর:

প্রথমে আপনার ভিউকন্ট্রোলারের .h ফাইলটিতে এটি লিখুন

UIButton *btn;

এখন এটি আপনার ভিউকন্ট্রোলারদের ভিডডিডলডের .m ফাইলে লিখুন।

btn=[[UIButton alloc]initWithFrame:CGRectMake(50, 20, 30, 30)];
[btn setBackgroundColor:[UIColor orangeColor]];
//adding action programatically
[btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];

আপনার ভিউ কন্ট্রোলারের .m ফাইলে এটি বাইরের ভিউডিডলড পদ্ধতিটি লিখুন

- (IBAction)btnClicked:(id)sender
{
   //Write a code you want to execute on buttons click event
}

8
 CGRect buttonFrame = CGRectMake( x-pos, y-pos, width, height );   //
 CGRectMake(10,5,10,10) 

 UIButton *button = [[UIButton alloc] initWithFrame: buttonFrame];

 button setTitle: @"My Button" forState: UIControlStateNormal];

 [button addTarget:self action:@selector(btnClicked:) 
 forControlEvents:UIControlEventTouchUpInside];

 [button setTitleColor: [UIColor BlueVolor] forState:
 UIControlStateNormal];

 [view addSubview:button];




 -(void)btnClicked {
    // your code }

6

সুইফট 3 এর জন্য

প্রথমে বোতাম অ্যাকশনের জন্য একটি ফাংশন তৈরি করুন এবং তারপরে আপনার বোতাম টার্গেটে ফাংশন যুক্ত করুন

func buttonAction(sender: UIButton!) {
    print("Button tapped")
}

button.addTarget(self, action: #selector(buttonAction),for: .touchUpInside)

3
UIButton *btnNotification=[UIButton buttonWithType:UIButtonTypeCustom];
btnNotification.frame=CGRectMake(130,80,120,40);
btnNotification.backgroundColor=[UIColor greenColor];
[btnNotification setTitle:@"create Notification" forState:UIControlStateNormal];
[btnNotification addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnNotification];


}

-(void)btnClicked
{
    // Here You can write functionality 

}

আপনার নমুনা কীভাবে সহায়তা করতে পারে সে সম্পর্কে দয়া করে কিছু মন্তব্য সরবরাহ করুন।
Nogard

UIButton * btnNotifications = [UIButton বাটনউইথটাইপ: UIButtonTypeCustom]; btnNotifications.frame = CGRectMake (130,80,120,40); // বাটন ফ্রেম সেটিং বিটিএনএনটিফিকেশন.ব্যাকগ্রাউন্ড কালার = [ইউআইসি কালার গ্রিন কালার]; [বিটিএনএনটিফিকেশন সেটটাইটেল: @ "নোটিফিকেশন তৈরি করুন" ফরস্টেট: ইউআইসিএন্ট্রোলস্টেটনর্মাল]; // বোতামের জন্য শিরোনাম সেট করুন [বিটিএননোটিকেশন অ্যাডটারাজেট: স্ব কর্ম: @ নির্বাচনকারী (বিটিএনক্লিকড) কনট্রোলএন্টস: ইউআইসিএন্ট্রোলটেন্টটিউচউপআইন্সিড] যোগ করুন: সংক্ষিপ্ত বিবরণ যোগ করুন বিটিএনএনটিফিকেশন];} - (শূন্য) বিটিএন ক্লিক lic // এখানে আপনি কার্যকারিতা লিখতে পারেন
user

- (অকার্যকর) বিটিএন ক্লিক করুন {// আপনি যা করতে চান তা এখানে আপনি বোতামটির জন্য ক্রিয়াটি সেট করতে পারেন // উদাহরণ: পরবর্তী ভিউকন্ট্রোলারে পরের ভিউতে যান কন্ট্রোলার * পরের পৃষ্ঠা = [পরের ভিউ নিয়ন্ত্রণকারী বরাদ্দ] init]; [স্ব-নেভিগেশন কন্ট্রোলার পুশভিউ কন্ট্রোলার: নেক্সটপেজ অ্যানিমেটেড: হ্যাঁ]; }
user2677311

2

UIButtonথেকে উত্তরাধিকারী UIControl। এতে ক্রিয়াগুলি যুক্ত / সরানোর সমস্ত পদ্ধতি রয়েছে: ইউআইসিএন্ট্রোল শ্রেণীর রেফারেন্স । "অ্যাকশন বার্তাগুলি প্রস্তুত ও প্রেরণ করা" বিভাগটি দেখুন, যা কভার করে – sendAction:to:forEvent:এবং – addTarget:action:forControlEvents:


1
 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
       action:@selector(aMethod1:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];   
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.