วันจันทร์ที่ 29 ตุลาคม พ.ศ. 2555

Basic Xcode Programming II : Event & Action

Basic Xcode Programming II : Event & Action

หลังจากที่เราได้เรียนกับการแสดงผลเบื้องต้นไปกับบทความ Basic Xcode Programing I ไปแล้ว ในบทความนี้เรามาเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Event เพื่อแสดง Action กันครับ

นำ Code จากบทความที่แล้วมาทำต่อเลยนะครับ ( สำหรับคนที่ยังไม่ทำกลับไปทำก่อนน่ะครับ ^ ^ )

  • เลือก ViewController.xib หลังจากนั้นนำ Object Button มาวางไว้ใน View


หลังจากนั้นเราก็ไปทำการสร้าง Object Button สำหรับเชื่อมต่อ
  • เพิ่ม Code ใน ViewController.h  ดังนี้

เพิ่ม  Code ในส่วนที่ขีดเส้นใต้
อธิบาย Code ที่เพิ่ม


-(IBAction)Printtext : (id) sender ; 

เป็นการประกาศขึ้นมาว่าจะมีการใช้ Action ขึ้นมาเชื่อมต่อกับ Object ใน Interface Builder

แล้วทำไมไม่ประกาศ IBOutlet ให้ Button ด้วย ?
ไม่จำเป็นครับ เพราะเราไม่ได้ต้องการทำการเปลี่ยนแปลงค่าต่างๆของ Object Button เอง แต่เราใช้งาน Object Button เพื่อเป็นตัวกลางสำหรับไปใช้งาน Action เท่านั้นครับ
  • เลือก ViewController.xib หลังจากนั้น เลือก Icon File's Owner สังเกตมุมขวาบนใน Tab ของ Connection inspector ( Tab ขวาสุด ) ในส่วนของ Outlets จะเห็นว่ามี Object Printtext ลากจากจุดขวาสุดมายัง Button ที่ได้สร้างไว้ใน Interface Builder แล้วเลือก Touch Up Inside


กดที่ภาพเพื่อขยาย

อธิบาย

เป็นการเชื่อมต่อระหว่าง Object ใน Interface Builder กับในส่วนของ Code และทำการเลือก Event ว่าเมื่อไหร่ Action ถึงจะทำงาน โดยในที่นี้เราเลือก Touch Up Inside ไปหมายความว่า หากทำการกดและปล่อยภายในปุ่ม Action ก็จะเริ่มทำงาน


หากทำสำเร็จ สังเกตว่า Object Printtext จะมีการเปลี่ยนแปลงดังนี้


  • เพิ่ม Code ใน ViewController.m  ดังนี้


อธิบาย  :  เป็นการบอกว่าเมื่อ Action เกิดขึ้นแล้วจะให้ทำอะไร

หลังจากนั้นให้ลองทำการ Run Program ครับ



สังเกตได้ว่า เมื่อเราทำการกดปุ่ม ข้อความใน Label จะถูกเปลี่ยนไปตามที่เราตั้งค่าไว้ครับ

## ผมได้ใส่ชื่อของปุ่มเพื่อความสวยงามด้วยครับ ^ ^ วิธีใส่ก็ไปแก้ใน Interface Builder นั่นเองครับ
## สังเกตว่าหากเราทำการกดปุ่มแต่เราไปปล่อยบริเวณอื่นที่ไม่ใช่ภายในปุ่ม ข้อความก็จะไม่ถูกเปลี่ยน เนื่องจาก Event ไม่ตรงกับที่เราตั้งไว้นั่นคือ Touch Up Inside นั่นเองครับ

สามารถดูว่ามี Event อะไรบ้างจากภาพประกอบด้านบนได้เลยนะครับ

คราวนี้เราลองให้ Label เปลี่ยนข้อความเป็นข้อความใหม่ที่เราพิมพ์ลงไปใน Text Field
( ลองทำเองนะครับ )


  • นำ Object Text Field  ไปเพิ่มใน Interface Builder
  • เขียนประกาศ Object Textfield ใน ViewController.h
  • เชื่อมต่อ  Object ใน Interface Builder
  • แก้ Code ในส่วนของ Action ใน ViewController.m ดังนี้
เป็นการสั่งให้นำข้อความใน Textfield ไปเก็บใน Label นั่นเอง

คราวนี้ก็ลอง Run Program ครับ จะเห็นว่าข้อความใน Label ถูกเปลี่ยนตามข้อความใน Textfield




0 ความคิดเห็น:

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