มีวิธีในการเริ่มการทำงานของเหตุการณ์คลิกปุ่มโดยทางโปรแกรมหรือไม่? ฉันมีปุ่มวางไว้ที่นั่นใน UIView และในบางสถานการณ์ฉันต้องการคลิกปุ่มผ่านรหัสไม่ใช่ด้วยตนเองในฐานะผู้ใช้ เป็นไปได้ไหมในการพัฒนา iOS โปรดให้คำแนะนำของคุณและแนะนำวิธีการทำเช่นนั้น
ขอบคุณ
มีวิธีในการเริ่มการทำงานของเหตุการณ์คลิกปุ่มโดยทางโปรแกรมหรือไม่? ฉันมีปุ่มวางไว้ที่นั่นใน UIView และในบางสถานการณ์ฉันต้องการคลิกปุ่มผ่านรหัสไม่ใช่ด้วยตนเองในฐานะผู้ใช้ เป็นไปได้ไหมในการพัฒนา iOS โปรดให้คำแนะนำของคุณและแนะนำวิธีการทำเช่นนั้น
ขอบคุณ
คำตอบ:
เรียงลำดับเหมือนคำตอบของ Ken แต่มีความยืดหยุ่นมากกว่าเนื่องจากจะติดตามการทำงานจริงของปุ่มหากคุณเปลี่ยนหรือเพิ่มมากกว่าหนึ่ง
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
ฉันมีปัญหาเดียวกันกับด้านบน ฉันจะโพสต์ความคิดเห็น แต่ชื่อเสียงของฉันยังไม่สูงพอ ดังนั้นฉันจะโพสต์คำตอบแบบเต็มแทน:
[btn setHighlighted:YES];
[btn sendActionsForControlEvents:UIControlEventTouchUpInside];
[btn performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.25];
การดำเนินการนี้จะกดปุ่มโดยใช้โปรแกรมและไฮไลต์เป็นระยะเวลาที่ดูเหมือนปกติ คำแนะนำของ Richie ไม่ได้ผลเนื่องจากปุ่มถูกไฮไลต์เท่านั้น (ถ้าเป็นเช่นนั้น) ในช่วงเวลาที่มองไม่เห็น
ทำไมไม่เพียงรันโค้ดที่รันเมื่อผู้ใช้กดปุ่ม?
-(void)myMethod
{
// do stuff
}
-(IBAction)myButtonClick:(id)sender
{
[self myMethod];
}
-(void)clickMyButton
{
[self myMethod];
// OR
[self myButtonClick:nil];
}
หากคุณกำลังพูดถึง UIButton คุณสามารถเรียกใช้วิธีเดียวกับที่ UIButton เรียกเมื่อมีการแตะ ตัวอย่างเช่น:
[self myButtonsTargetMethod];
ใช่,
[_button setHighlighted:YES];
[_button sendActionsForControlEvents:UIControlEventTouchUpInside];
[_button setHighlighted:NO];
แต่ปัญหาคือคุณจะไม่สามารถเห็นเหตุการณ์เหล่านั้นได้เนื่องจากเร็วเกินไป ดังนั้นสิ่งที่คุณสามารถทำได้คือลองใช้รหัสด้านบนกับ NSTimer
NSTimer *quick = [NSTimer scheduledTimerWithTimeInterval:2.5 target:self selector:@selector(MeFirst:) userInfo:nil repeats:NO];
MeFirst เป็นวิธีที่ฉันสร้างขึ้น
button.showsTouchWhenHighlighted = YES
ต้องการด้วยการสัมผัสจริงหรือไม่?