Я хочу создать категорию на UIColor
в своем приложении с помощью Xcode 6. Но дело в том, что в Xcode 6 нет шаблона файла Objective-C.
Есть ли возможность создать категорию в Xcode 6?
Я хочу создать категорию на UIColor
в своем приложении с помощью Xcode 6. Но дело в том, что в Xcode 6 нет шаблона файла Objective-C.
Есть ли возможность создать категорию в Xcode 6?
Они не забыли. Они просто перенесли его, не сказав никому.
Нажмите File
→ New
→ File
Выберите Objective-C file
под Sources
в iOS
или Mac OS
соответственно и нажмите "Далее"
Теперь под File Type:
выберите либо Category
, Protocol
, либо Extension
PS. В File Name:
все, что вы вводите здесь, будет либо Category
, Protocol
, либо Extension
Name.
Чтобы создать CategoryBaseClass + CategoryName.m/.h:
Здесь визуальная демонстрация:
Обновление Xcode6-Beta5
Теперь интерфейс изменился, и можно добавить категорию непосредственно из окна "Создать" > "Файл".
См. ответ unmircea.
Я был удивлен сам, и я думаю, из-за Swift они забыли о добром старом 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
Edit
Этот ответ был написан до поиска способа создания категории в бета-версии Xcode 6. Проверьте ответ unmircea на правильный способ создания категории
Расширение unmircea фантастический ответ re: как создать пользовательскую категорию для реализации пользовательской палитры 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, я сделал оболочку script для этого: https://github.com/cDigger/AddMissingTemplates
Вы можете создать файл расширения как 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 {
}
Готово. пользоваться кодировкой