วันจันทร์ที่ 14 มีนาคม พ.ศ. 2554

iPhone: addTarget Event in Button

addTarget Event in Button
ขอเขียนกันลืมอีกสักหน่อยหละกันกับการกำหนด Event ให้กับ ปุ่ม (UIButton) ใน iPhone มันต่างกับ Java และ ActionScript อะเนอะ เลยจำยากหน่อย ว่าต้องเริ่มด้วยการ addTarget แล้วก้อมา seclector ไปยังฟังก์ชั่นที่จะรับอีเวนท์ และจบด้วยบอกว่าเป็น อีเวนท์ประเภทไหน โอเคเริ่มกันเลย

โดยปกติแล้วเวลาใส่อีเวนท์ให้ปุ่มส่วนมากผมใส่การใส่อีเวนท์ผ่าน Interface Builder คือจับๆ ลากใส่อย่างเดียวเลย



แต่ครั้งนี้กลับได้มาเขียนสร้าง IUButton ในคลาสเอง เหอะๆ แล้วก้อต้องใส่อีเวนท์เองอีก น่าสนใจทีเดียวครับ มาต่อกันเลย

สำหรับวิธีการสร้าง IUButton



UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 70, 50)];


เป็นการสร้าง ปุ่มด้วยชื่อตัวแปร button ขนาด x=10 y=10 w=70 h=50

การเพิ่ม UIButton ลง View ที่ต้องการ โดยใช้

[view addSubView:button]


การใส่อีเวนท์และการสร้างฟังก์ชั่นรับอีเวนท์ใน .m การประกาศใน .h



  • ใน .m


ฟังก์ชั่นในการเพิ่มอีเวนท์ให้กับ ปุ่ม




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


แล้วก้อไปสร้างฟังก์ชั่น didClick เอาไว้ คือ (เพราะเราประกาศ  addTarget:self และ action:@selector(ชื่อฟังก์ชั่น)) หากไม่ต้องการส่งค่า (id)sender เข้าไปในฟังก์ชั่นให้เปลี่ยนชื่อฟังก์ใน selector เป็น @selector(didClick) ไม่ต้องมี : ต่อท้าย
-(void)didClick:(id)sender{
//to do
}


  • ใน .h


ก้อประกาศ -(void)didClick:(id)sender; เพิ่มเข้าไป

อีเวนท์ต่างๆ ที่ใช้ได้ จะเป็นตัวแปรของ UIControlEvent ลองเลือกที่เหมาะสมดู


การใส่อีเวนท์ให้กับปุ่มที่เขียนขึ้นเอง ไม่ยากเลยใช่มั้ยครับ หากเราพิมพ์ addTarget แล้วก้อ esc มันก้อจะขึ้นไกด์มาให้เรา เราก้อจะใช่พารามิเตอร์ถูกยิ่งขึั้น แต่หากเราจำไม่ได้ว่าต้องใส่อะไรยังไง ก้อมาที่ adayd3sign.wordpress.com ได้ทุกเวลาเลยนะครับ

Reference

adaydesign :)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น