ฉันต้องการสร้างหมวดหมู่UIColor
ในแอพของฉันโดยใช้ Xcode 6 แต่สิ่งที่เป็นใน Xcode 6 ไม่มีเทมเพลตไฟล์หมวดหมู่ Objective-C
มีตัวเลือกในการสร้างหมวดหมู่ใน Xcode 6 หรือไม่?
@interface UIColor(MyCategory) ...
ฯลฯ
ฉันต้องการสร้างหมวดหมู่UIColor
ในแอพของฉันโดยใช้ Xcode 6 แต่สิ่งที่เป็นใน Xcode 6 ไม่มีเทมเพลตไฟล์หมวดหมู่ Objective-C
มีตัวเลือกในการสร้างหมวดหมู่ใน Xcode 6 หรือไม่?
@interface UIColor(MyCategory) ...
ฯลฯ
คำตอบ:
พวกเขาไม่ลืม พวกเขาย้ายมันโดยไม่บอกใคร
คลิกFile
-> New
->File
เลือกObjective-C file
ภายใต้Sources
ในiOS
หรือMac OS
ตามลำดับและคลิกถัดไป
ตอนนี้อยู่ภายใต้การFile Type:
เลือกอย่างใดอย่างหนึ่งCategory
, Protocol
หรือExtension
PS ภายใต้File Name:
สิ่งที่คุณพิมพ์ที่นี่จะเป็นอย่างใดอย่างหนึ่งCategory
, Protocol
หรือExtension
ชื่อ
Objective-C File
โดย XCode 6 คือ "ไฟล์ Objective-C ที่ว่างเปล่า" แทนที่จะเป็นคำอธิบายของฉันซึ่งเป็น "ไฟล์เก่าอย่างใดอย่างหนึ่งไม่ได้ว่างเปล่าไฟล์ Objective-C ที่คุณคุ้นเคย" ซึ่งทำให้ฉันค่อนข้างดี!
วิธีสร้างCategoryBaseClass + CategoryName.m / .h :
อัปเดต Xcode6-Beta5
ขณะนี้อินเทอร์เฟซเปลี่ยนไปและสามารถเพิ่มหมวดหมู่ได้โดยตรงจากหน้าต่างใหม่> ไฟล์
ดูคำตอบของ unmircea
ฉันประหลาดใจกับตัวเองและฉันเดาว่าเพราะพวกเขาลืมเรื่องเกี่ยวกับ Objective-C เก่า ๆ
คุณมีสองทางเลือก:
สร้างคลาส Objective-C ด้วยชื่อหมวดหมู่UIView+Powerups
จากนั้นเปลี่ยนอินเทอร์เฟซให้ตรงกับหมวดหมู่ใดหมวดหมู่หนึ่ง โปรดทราบว่าข้อมูลโค้ดสำหรับอินเตอร์เฟซหมวดหมู่และการดำเนินงานยังคงทำงานเพื่อที่พิเศษง่าย: ชนิดและ@interface-category
@implementation-category
นำเข้าจาก Xcode 5! ใช้คำสั่งนี้:
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/
ปิดและเปิด Xcode 6 อีกครั้งและคุณจะพบ "หมวดหมู่ Objective-C" ในตัวช่วยสร้างสำหรับไฟล์ใหม่
ไม่มีเทมเพลตที่กำหนดไว้ล่วงหน้าเพื่อสร้างหมวดหมู่ใน Xcode 6 เบต้า (ในขณะนี้) พวกเขาอาจเพิ่มตัวเลือกนี้ในภายหลัง เป็นวิธีแก้ไขคุณสามารถสร้างCocoa Touch Class
(มันไม่เหมาะสมฉันรู้ แต่ไม่มีวิธีอื่น) ชื่อUIImage+Additions
(ClassName + CategoryName) และแทนที่ส่วนต่อประสานและการใช้งานบางอย่างเช่น
#import <UIKit/UIKit.h>
@interface UIImage(Additions)
+(void)testMethod;
@end
#import "UIImage+Additions.h"
@implementation UIImage (Additions)
+(void)testMethod
{
}
@end
แก้ไข
คำตอบนี้เขียนขึ้นก่อนที่จะค้นหาวิธีการสร้างหมวดหมู่ใน Xcode 6 เบต้า ตรวจสอบคำตอบของ unmircea สำหรับวิธีการสร้างหมวดหมู่ที่ถูกต้อง
การขยายคำตอบที่ยอดเยี่ยมของ unmircea คือวิธีการสร้างหมวดหมู่ที่กำหนดเองเพื่อใช้UIColor
จานสีแบบกำหนดเองคุณสามารถสร้างหมวดหมู่ได้
เมื่อคุณสร้างหมวดหมู่ของคุณ (ในตัวอย่างนี้ก็เป็นหมวดหมู่เรียกว่าColorPalette
ของชั้น UIColor
) คุณจะมีส่วนหัวและไฟล์การดำเนินงาน
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];
}
ในการใช้ชุดสีแบบกำหนดเองของคุณเพียงนำเข้าส่วนหัวในคลาสที่คุณต้องการใช้สีแบบกำหนดเองของคุณ:
#import "UIColor+ColorPalette.h"
และเรียกสีที่คุณจะเป็นสีมาตรฐานเช่นredColor
, หรือgreenColor
blueColor
นี่คือลิงก์ไปยังการอภิปรายเชิงลึกเพิ่มเติมเล็กน้อยเกี่ยวกับการสร้างจานสีแบบกำหนดเอง
นอกจากนี้นี่คือเครื่องมือที่จะช่วยคุณเลือกค่าสีที่กำหนดเอง
คุณสามารถคัดลอกเทมเพลตที่คุณต้องการจาก Xcode รุ่นเก่าฉันทำเชลล์สคริปต์สำหรับสิ่งนี้: https://github.com/cDigger/AddMissingTemplates
คุณสามารถสร้างไฟล์ "extension" เช่น 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 {
}
เสร็จสิ้น เพลิดเพลินกับการเข้ารหัส