2011-02-07 36 views
5

Tôi hỏi một câu hỏi trước đây về đây liên quan đến việc sử dụng của First Responder - và nhận được một câu trả lời ở đây:Đầu tiên Responder Giải thích cần thiết

Trouble with First Responder

có ai tâm đem lại cho tôi một phiên bản 'núm vú cao su' này? Là người mới đến Cocoa, tôi thực sự không biết bắt đầu từ đâu bằng một trong những phương pháp này. Tôi giải thưởng câu trả lời một cách nhanh chóng

Zach

Trả lời

22

Phản hồi đầu tiên cụ thể là this.

Tuy nhiên, điều bạn đang hỏi là hành động mục tiêu. Bạn có một đối tượng UI (nút, mục trình đơn) mà bạn cần phải gây ra nhiều điều xảy ra, nhưng đối tượng UI chỉ gửi một hành động.

Do đó giải pháp: Thực hiện hành động đó làm nhiều việc.

Móc đối tượng giao diện người dùng lên đến phương thức hành động mà bạn triển khai trong đối tượng bộ điều khiển (trong trường hợp của bạn là tài liệu). Trong phương pháp đó, làm tất cả những thứ mà nút cần phải gây ra.

Giải pháp phân lớp cơ bản là giống nhau, ngoại trừ thay vì gắn đối tượng UI vào tài liệu của bạn, bạn móc nó lên trình quản lý phông, nhưng bạn cũng làm cho trình quản lý phông chữ trở thành một thể hiện của lớp con của NSFontManager tạo, chứ không phải là một cá thể của NSFontManager trực tiếp. Trong lớp con của bạn, bạn ghi đè addFontTrait: và thêm hành vi khác trong quá trình triển khai của mình. Khi bắt đầu hoặc kết thúc phương thức đó, bạn gửi [super addFontTrait:sender] để gọi thực hiện NSFontManager, do đó việc triển khai ban đầu được thực hiện.

Đoạn dài, nhưng nó không thực sự là tất cả những công việc nhiều hơn nữa: Sự khác biệt chỉ là làm cho lớp con và làm cho cá thể một thể hiện của phân lớp đó.


Bạn đã nói trước đó "Tài liệu Apple vô cùng mơ hồ", nhưng thực sự là không. Chỉ xảy ra là rất nhiều, và có thể bạn chưa xem xét đúng tài liệu.

Đây là những tài liệu bạn cần phải đọc, từ đầu đến cuối, và theo thứ tự:

EDIT: Danh sách này là dành cho Xcode 3. Tôi đã đăng một cập nhật (đối với Xcode 4) phiên bản của danh sách này trong another answer.

  1. The Objective-C Programming Language
  2. The Memory Management Programming Guide for Cocoa
  3. The Cocoa Fundamentals Guide (điều này giải thích mục tiêu hành động, trong số những thứ khác)
  4. Application Architecture Overview
  5. Resource Programming Guide
  6. Interface Builder User Guide
  7. Các Xcode 3 hướng dẫn: 0.123.
    1. Xcode Project Management Guide
    2. Xcode Workspace Guide
    3. Xcode Build System Guide
    4. Xcode Debugging Guide
  8. Document-Based Applications Overview

Ngoài ra còn có một Instruments User Guide, nhưng, thật không may, rằng một mơ hồ - hoặc, chính xác hơn, không đầy đủ. Nó bỏ qua rất nhiều thông tin hữu ích, giống như cách sử dụng mẫu Zombies của Instruments để gỡ lỗi. Đó là một cái nhìn tổng quan cấp cao, không có gì hơn.

Ngoài ra, đánh dấu trang này:

Đó là rất nhiều đọc, nhưng nó sẽ cho bạn biết tất cả mọi thứ bạn cần biết, và thứ tự là khoảng thứ tự bạn sẽ cần phải biết nó.

+2

+1 nhưng tôi muốn cung cấp cho nhiều hơn . – Abizern

+0

Tôi đánh giá cao sự giải thích của Peter! Rất hữu ích tôi sẽ xem xét rằng – Zakman411

+0

+ 1 cho các liên kết tài liệu và thứ tự đọc được đề xuất. Cho đến nay tôi đã tìm thấy tài liệu của Apple là rất tốt nhưng khối lượng tuyệt thường là áp đảo. Đây là một trợ giúp lớn. –

1

Câu trả lời khác nói rằng bạn có hai lựa chọn:

đầu tiên: Đừng thay thế các hành động của một trong những tạo ra bởi bạn và sau đó thực hiện các tính năng của phiên bản gốc cho mình. Trong trường hợp này, nó đủ để chỉ gọi phương thức thích hợp là NSFontManager. Tức là, bạn thêm chức năng ban đầu để thực hiện phương pháp của riêng bạn. Bằng cách này, cả hai hành động được thực hiện.

Thứ hai: Phân lớp lớp nơi chức năng ban đầu được triển khai và thêm triển khai của bạn bằng cách ghi đè phương thức được gọi là -addFontTrait. Bằng cách này, mã của bạn được thực thi "cùng với". This question có thể giúp bạn tìm việc triển khai chính xác.

Vì vậy, bản chất là bạn có thể thêm chức năng ban đầu vào triển khai của bạn hoặc cách khác. Trong trường hợp này, tôi sẽ thử cái đầu tiên.

Các vấn đề liên quan