XÂY DỰNG ỨNG DỤNG TRÊN IPHONE (P9)

Share:

Thêm một Outlet trên Text Field

1. Giữ nút control rồi kéo text field bên trong view vào lớp thực thi HelloWorldViewController.m. Kết quả sẽ như sau:

firstiphoneapp32

2. Sẽ có 1 dialog xuất hiện, phía trái vùng assistant editor khi bạn kết thúc việc kéo thả. Sau đó chúng ta sẽ nhập vào cấu hình kết nối như đưới dây:

firstiphoneapp32

  • Hãy chắc chắn Connection pop-up menu có chứa Outlet.
  • Ở hộp nhập tên, gõ vào “textField”
  • Bạn có thể gọi 1 outlet bất kì lúc nào bạn muốn. Nhưng code của bạn sẽ trở nên dễ hiểu hơn khí 1 tên outlet gần gũi với tên của phần tử mà nó đang đại diện.
  • Hãy chắc chắn trường type có chứa “UITextField”
  • Thiếp lập nội dung của trường Type thành “UITextField” và hãy chắc chắn rằng Xcode kết nối outlet thông qua duy nhất text field.
  • Hãy chắc chắn Storage pop-up menu có chứa Weak, đây chính là giá trị mặc định sau khi thiết lập xong kết quả sẽ như dưới đây:

firstiphoneapp33

3. Tiếp tục hãy nhấn vào button connect.

Như vậy là bạn đã hoàn tất 2 việc thông qua công việc thêm 1 outlet cho text field. Cụ thể:

  • Xcode đã thêm vào 1 đoạn code tương đương vào tệp tin thực thi (HelloWorldViewController.m) của class view controller như sau:
  • Xcode đã thiế lập 1 kết nối từ view controller đến text field. Bằng cách thiết lập kết nối giữa view controller và text field, nội dung text mà users nhập vào có thể truyền được đến view controller.
  • Giờ thì các bạn cần thêm 1 outlet cho label rồi cấu hình kết nối. Thiết lập 1 kết nối giữa label và view controller để cho phép view controller có thể cập nhật xâu hiển thị trên label.  Những bước mà các bạn làm cũng giống với những bước mà các bạn thêm outlet cho text field tuy nhiên cũng có đôi chút thay đổi về cấu hình tương ứng. (hãy chắc chắn HelloWorldViewController.m vẫn mở ở trên assistant editor)

Thêm 1 outlet cho label

1. Giữ nút control rồi kéo label từ view cho tới class thực thi HelloWorldViewController.m trong assistant editor.

2. Kết thúc việc kéo thả, các bạn hãy cấu hình kết nối label như dưới đây:

  • Chắc chắn rằng Connection pop-up menu có chứa outlet
  • Trong trường name, chúng ta gõ vào “label”
  • Hãy chắc chắn rằng trường Type có chứa “UILabel”
  • Hãy chắc chắn rằng Storage pop-up menu có chứa “Weak”

3. Tiếp theo hãy nhấn vào Connect.

Ở thời điểm này thì các bạn đã tạo đc ra 3 kết nối tất cả tới view controller:

  • Kết nối action cho button
  • Kết nối outlet cho label
  • Kết nối outlet cho text field

Mở connections inspector cho view controller

  1. Nhấp vào nút Standard editor để đóng Assistant editor rồi chuyển qua chế độ Standard editor.
  2. Nhấp vào nút Utilities view để mở vùng tiện ích ra
  3. Chọn Hello World View Controller trong outline view
  4. Hiển thị Connections inspector ở vùng tiện ích

Ở Connections inspector, Xcode sẽ hiển thị những connection cho mỗi object được lựa chọn. Cửa sổ làm việc của bạn sẽ hiển thị như sau:

firstiphoneapp34

Tạo kết nối delegate của text field

Bạn có 1 hay nhiều kết nối đc tạo ra bên trong ứng dụng. Lúc này thì bạn cần kết nối text fiend với 1 object mà bạn đã chỉ ra như là 1 delegate của nó. Ở bài học hôm nay mình sẽ dùng view controller cho delegate của text field.

Bạn cần phải chỉ ra 1 đối tượng delegate cho text field. Bởi text field sẽ gửi 1 thông điệp đến delegate khi người dùng nhấp vào nút Done phía trên bàn phím iPhone. Ở bước sau đó bạn sẽ cần dùng phương thức thực thi với thông điệp này bỏ đi keyboard.

Hãy chắc chắn tệp tin storyboard file được mở trên canvas. Nếu không thì các bạn hãy chọn  MainStoryboard.storyboard trong project navigator.

1. Tại View, các bạn hãy giữ nút control rồi kéo text field tới hình quả cầu màu vàng trong scene dock. Khi kết thúc kéo thả các bạn sẽ thấy hình sau:

firstiphoneapp35

2. Chọn delegate trong Outlets ở bảng mờ điều khiển.

Kiểm tra và chạy thử app

Nhấp vào nút Run để chạy và kiểm tra thử ứng dụng. Bạn sẽ thấy 1 button Hello ở phía dưới góc của màn hình iPhone. Sau đó bạn cần nhấp vào text field, sẽ có 1 bàn phím xuất hiện để bạn đánh text. Tuy nhiên cũng chưa có xử lý gì cụ thể, bạn sẽ cần tiếp tục build delegate cho action đó. Sau đó bạn đóng ứng dụng lại bằng cách thoát khỏi simulator.

Share:

Leave a reply