2013-09-02 39 views
16

Tôi đã và đang phát triển chỉ dành cho iOS trong vài năm nay và tự coi mình là khá có năng lực với iOS và Mục tiêu C. Tôi muốn mở rộng thêm các kỹ năng và chuyển sang lĩnh vực các ứng dụng dành cho máy tính để bàn cho OS X.Phát triển cho OS X đến từ nền iOS

Xem xét các mô hình cực kỳ khác nhau cho cả hai nền tảng liên quan đến bộ điều khiển xem và bộ điều khiển cửa sổ (để đặt tên một vài), tôi đang cố gắng tìm một điểm khởi đầu tốt để làm cho bàn chân của tôi ướt iOS SDK đang gây nhầm lẫn khi đọc qua tài liệu OS X.

Với tôi, các lớp học chính cho iOS sẽ là UIViewController (và các biến thể của nó, UINavigationControllerUISplitViewController) và UIView. Bắt tay với những điều này làm cho việc học các lớp con của họ (chẳng hạn như UIButton, UITextField) dễ hiểu hơn trong khi cũng nhận được nội dung nào đó trên màn hình để cung cấp kết quả hiển thị.

Hiện tại, tôi hiểu rằng NSViewController không nhất thiết phải là đối tác tương tự với UIViewController. Ngoài ra, xem xét rằng các ứng dụng OS X có thể có nhiều cửa sổ, UIWindowController hoàn toàn xa lạ với tôi và tôi không hiểu cách thức này sẽ nằm trong hệ thống phân cấp của một ứng dụng.

Có bất kỳ cựu chiến binh OS X dày dạn nào hay không để đề xuất lớp học nào sẽ là điểm khởi đầu hữu ích nhất để tôi đọc và chơi cùng? Điều gì sẽ là hữu ích cho tôi vào thời điểm này là tìm đó diện tích của SDK tôi nên tập trung nỗ lực của tôi trên để phân biệt hoàn toàn sự khác biệt giữa iOS và OS X.

Edit:

Tôi không yêu cầu một danh sách các hướng dẫn. Tôi muốn nhiều người giải thích sự khác biệt giữa các mô hình cho hệ thống phân cấp nhiều bộ điều khiển (iOS) cho một thiết lập cửa sổ đơn của OS X và/hoặc đề xuất các lớp nào sẽ được điều tra tốt nhất làm điểm bắt đầu để có được thứ gì đó trên màn hình như vậy dưới dạng NSWindowNSWindowController.

+0

Tôi nghĩ rằng đây là một câu hỏi thú vị và muốn có một câu trả lời hay nhưng tôi cũng nghĩ rằng nó khá rộng (do đó khó có thể đưa ra câu trả lời rõ ràng) và các câu hỏi yêu cầu hướng dẫn hoặc các tài nguyên khác thường được coi là "off-topic" (xin lỗi) –

+0

câu hỏi không yêu cầu hướng dẫn. Nó khá dễ dàng để google cho những thứ như vậy. Lý tưởng nhất, việc đẩy đúng hướng để phân biệt sự khác biệt giữa các đối tác iOS và OS X như 'NSViewController' và' UIViewController' sẽ hữu ích hơn, giống như câu trả lời của @ JustSid. – CaptainRedmuff

Trả lời

9

OS X tương tự như iOS về vấn đề nó cũng tuân theo khái niệm MVC. Tuy nhiên, toàn bộ trải nghiệm người dùng khác với thực tế là OS X thường hoạt động với màn hình lớn hơn và sử dụng chuột và bàn phím cho đầu vào, do đó, ánh xạ 1: 1 giữa giả sử NSViewControllerUIViewController là không thể. Thông thường, bạn có bộ điều khiển cửa sổ hoạt động như bạn mong đợi bộ điều khiển xem của bạn dưới iOS. Tuy nhiên, thay vì chuyển đổi giữa các bộ điều khiển xem, sử dụng ví dụ. a UINavigationController, bạn hiển thị cửa sổ thứ hai dưới dạng bảng phương thức hoặc bạn chỉ cần mở cửa sổ làm bảng hoặc tương tự.

Chỉ cần nhìn vào ứng dụng Mac trung bình của bạn, hầu hết mọi thứ trong iOS yêu cầu nhiều bộ điều khiển chế độ xem và chuyển tiếp giữa chúng, chỉ hoạt động với một cửa sổ duy nhất chứa mọi thứ. Tuy nhiên, các bộ điều khiển trong OS X ít hữu dụng hơn iOS nhưng chúng hoạt động rất tốt để giữ logic khác nhau trong nhiều lớp, hoặc khi bạn muốn hiển thị nội dung khác nhau trong một cửa sổ và thay đổi giữa chúng (nghĩ về Xcode, bên trái) và khung bên phải luôn giống nhau, nhưng nội dung ở giữa, trình soạn thảo văn bản, trình chỉnh sửa mục tiêu, vv, thay đổi. Đó sẽ là nơi để sử dụng nhiều bộ điều khiển chế độ xem).

Lời khuyên của tôi sẽ không cố gắng sử dụng ứng dụng Mac cho iOS. Mặc dù bạn có thể giữ cho logic cơ bản của bạn giống nhau, việc trình bày ứng dụng của bạn sẽ khác về cơ bản do thực tế là trải nghiệm của người dùng trên OS X rất khác nhau.Nếu bạn không chắc chắn cách làm việc với những thứ như NSWindowController, NSDocument và mọi thứ, tài liệu và mã mẫu do Apple cung cấp trong hầu hết các trường hợp là khá tốt (tuy nhiên, một số ví dụ cũ hơn)

+0

Cảm ơn bạn đã trả lời. Tôi sẽ không cố gắng để iOS-ify một ứng dụng. Nó chỉ có vẻ với tôi rằng một ứng dụng iOS được bao gồm hoàn toàn của 'UIViewController' trong khi điều này không thực sự là một yêu cầu cho các ứng dụng OS X. Dựa trên câu trả lời của bạn, có lẽ 'NSWindow' và' NSWindowController' sẽ là những phần quan trọng nhất để tôi tìm ra đầu tiên. – CaptainRedmuff

+1

@CaptainRedmuff Yep, 'NSWindowController' giống như đối tác của' UIViewController'. Như bạn đã nói, dưới iOS, một ứng dụng thường được chứa trong bộ điều khiển chế độ xem, trong khi đối với OS X, đó là một hoặc nhiều bộ điều khiển cửa sổ. – JustSid

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