Làm cách nào để tạo một danh mục trong Xcode 6 trở lên?


318

Tôi muốn tạo một danh mục trên UIColortrong ứng dụng của mình bằng Xcode 6. Nhưng điều đáng nói là trong Xcode 6 không có mẫu tệp danh mục Objective-C.

Có tùy chọn nào để tạo một danh mục trong Xcode 6 không?


Làm thế nào bạn làm điều đó trước Xcode 6?
holex

Chỉ cần gõ nó trong một tệp nguồn: @interface UIColor(MyCategory) ... vv
JeremyP

8
Tại sao không chọn một câu trả lời ?? Không làm như vậy lãng phí thời gian cho người dùng khác đang tìm kiếm giải pháp.
Tommie C.

Nếu bạn đang sử dụng Swift, thì bạn sẽ tạo Tiện ích mở rộng thay vì Danh mục. Xem câu trả lời này để biết cách làm.
Suragch

Câu trả lời:


745

Họ đã không quên. Họ chỉ di chuyển nó mà không nói cho ai biết.

  1. Bấm File-> New->File

  2. Chọn Objective-C filedưới Sourcestrong iOShoặc Mac OStương ứng và nhấn Next

  3. Bây giờ dưới File Type:chọn một trong hai Category, ProtocolhoặcExtension

Tái bút Dưới File Name:bất cứ điều gì bạn gõ vào đây sẽ là một trong hai Category, Protocolhoặc ExtensionTên.


13
Điều này thật khó hiểu.
Ben Sinclair

6
Họ chỉ thích hợp để thêm Swift và ẩn mọi thứ trong Objective-C hoặc tôi nghĩ rằng họ đã làm. Cá nhân tôi không hiểu tại sao Swift được thêm vào, Objective-C là một ngôn ngữ hay và biểu cảm như vậy một khi bạn đã biết nó ... Đó là các đối tượng trên đỉnh C ... Perrrinf
unom

8
Heh, mô tả được đưa ra Objective-C Filebởi XCode 6 là "Tệp Objective-C rỗng", chứ không phải mô tả của tôi, "một trong những tệp Objective-C cũ, hoàn toàn trống rỗng mà bạn đã sử dụng" , đã ném tôi đi khá độc đáo!
Stewohn

@unmircea Cảm ơn bạn đã đăng thông tin hữu ích như vậy. Đối với Apple: Điều này thật ngu ngốc!
mbm29414

1
Họ đã không quên. Họ chỉ di chuyển nó mà không nói cho ai biết. những gì là điển hình, xem xét mức độ tẻ nhạt của các tài liệu Apple nói chung và thường xuyên nhất là thiếu tài liệu.
Vịt

77

Để tạo CategoryBaseClass + CategoryName.m / .h :

  1. Tệp → Mới → Tệp ... hoặc sử dụng ⌘N .
  2. Chọn tệp Objective-C .

nhập mô tả hình ảnh ở đây

  1. Nhập tên danh mục, chọn Loại tệp: Danh mục , sau đó chọn lớp cơ sở.

nhập mô tả hình ảnh ở đây

  1. Hoàn thành luồng để tạo thể loại.


19

Cập nhật Xcode6-Beta5

Giao diện hiện đã thay đổi và có thể thêm Danh mục trực tiếp từ cửa sổ Mới> Tệp.

Xem câu trả lời của unmircea .


Tôi đã rất ngạc nhiên, và tôi đoán vì Swift họ đã quên mất Objective-C cũ.

Bạn có hai lựa chọn:

  1. Tạo một lớp Objective-C với tên danh mục, ví dụ UIView+Powerups, sau đó thay đổi giao diện theo cách thủ công để khớp với danh mục. Lưu ý rằng đoạn mã cho giao diện danh mục và triển khai vẫn hoạt động, do đó, cực kỳ dễ dàng: gõ @interface-category@implementation-category.

  2. Nhập nó từ Xcode 5! Sử dụng lệnh này:

    cp -r /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Cocoa\ Touch/Objective-C\ category.xctemplate /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Source/

    Đóng và mở lại Xcode 6 và bạn sẽ tìm thấy "Objective-C Category" trong trình hướng dẫn cho tệp mới.


2
FYI: nếu bạn đang ở phiên bản beta mới hơn, chỉ cần thay đổi Xcode-beta.app trong dòng thành Xcode6-betaX.app trong đó X là số beta.
Alex the Ukraine

1
Sai lầm! Kiểm tra câu trả lời bằng cách unmircea dưới đây để có câu trả lời chính xác - nó không biến mất, nó vừa mới di chuyển ..
Jay

12

Không có mẫu được xác định trước để tạo danh mục trong Xcode 6 beta (trong thời gian hiện tại), họ có thể thêm tùy chọn này sau. Vì công việc xung quanh bạn có thể tạo một Cocoa Touch Class(không đúng cách tôi biết nhưng không có cách nào khác) có tên UIImage+Additions(ClassName + CategoryName) và ghi đè lên giao diện của nó và thực hiện một số điều như

UIImage + Bổ sung.h

#import <UIKit/UIKit.h>

@interface UIImage(Additions)

+(void)testMethod;

@end 

UIImage + Bổ sung.m

#import "UIImage+Additions.h"

@implementation UIImage (Additions)

+(void)testMethod
{

}

@end

Chỉnh sửa
Câu trả lời này đã được viết trước khi tìm cách tạo danh mục trong Xcode 6 beta. Kiểm tra câu trả lời của unmircea cho cách tạo danh mục đúng


Apple đã quên thêm Danh mục Objective-c, mở rộng lớp Objective-c, các mẫu Giao thức Objective-c ....
Yalamandarao

Tôi đã tạo một báo cáo lỗi # 17627118 nếu bạn muốn sao chép nó.
David Pettigrew

Không cần giải pháp ngay từ khi phiên bản cuối cùng của XCode 6 có hỗ trợ danh mục tích hợp.
Zorayr

@Zorayr Nó đã được trả lời trước phiên bản Xcode 6 cuối cùng và công việc xung quanh cũng không sai. Đừng bỏ phiếu.
Anil Varghese

6

Mở rộng câu trả lời tuyệt vời của unmircea : cách tạo một danh mục tùy chỉnh để thực hiện UIColorbảng màu tùy chỉnh , bạn có thể tạo một danh mục.

Khi bạn đã tạo nhóm của bạn (trong ví dụ này, đó là một loại gọi là ColorPalettecác lớp UIColor ), bạn sẽ có một tiêu đề và một tập tin thực hiện.

UIColor + ColorPalette.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorPalette)

// Your custom colors

+ (UIColor *) customRedButtonColor;
+ (UIColor *) customGreenButtonColor;

@end

UIColor + ColorPalette.m

#import "UIColor+ColorPalette.h"

@implementation UIColor (ColorPalette)

// Button Colors

+ (UIColor *) customRedButtonColor {
    return [UIColor colorWithRed:178.0/255.0 green:25.0/255.0 blue:0.0/255.0 alpha:1.0];
}

+ (UIColor *) customGreenButtonColor {
    return [UIColor colorWithRed:20.0/255.0 green:158.0/255.0 blue:96.0/255.0 alpha:1.0];
}

Để sử dụng bảng màu tùy chỉnh của bạn, chỉ cần nhập tiêu đề vào lớp mà bạn muốn triển khai các màu tùy chỉnh của mình:

#import "UIColor+ColorPalette.h"

và gọi màu sắc như bạn làm một màu sắc chuẩn như redColor, greenColorhoặc blueColor.

Đây là một liên kết đến một cuộc thảo luận sâu hơn một chút về việc tạo một bảng màu tùy chỉnh.

Ngoài ra, đây là một công cụ giúp bạn chọn các giá trị màu tùy chỉnh


1
Trong khi điều này về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Jasper

3

Bạn chỉ có thể sao chép các mẫu bạn muốn từ một phiên bản Xcode cũ hơn, tôi đã tạo một tập lệnh shell cho việc này: https://github.com/cDigger/AddMissingTemsheet


Mặc dù đây có thể là một giải pháp hiệu quả, nhưng có lẽ nên sử dụng hỗ trợ danh mục được tích hợp trong Xcode - theo cách này, các mẫu sẽ luôn được cập nhật.
Zorayr

1

Bạn có thể tạo tệp "tiện ích mở rộng" như NSString + Helper:

1: File  New  File... or use N.

2: Name NSString+Helper (For example)

3: create the file

4: Remove the code from file

5: add 

extension NSString {


}

Làm xong. thích mã hóa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.