Ich möchte mit Xcode 6 eine Kategorie für UIColor
in meiner App erstellen. Allerdings gibt es in Xcode 6 keine Objective-C-Kategoriedateivorlage.
Gibt es eine Option zum Erstellen einer Kategorie in Xcode 6?
Sie haben es nicht vergessen. Sie haben es einfach bewegt, ohne es jemandem zu sagen.
Klicken Sie auf File
-> New
-> File
Wählen Objective-C file
unter Sources
in iOS
oder Mac OS
und klicken Sie auf Weiter
Jetzt unter File Type:
Wählen Sie entweder Category
, Protocol
oder Extension
PS. Unter File Name:
was auch immer Sie hier eingeben, wird entweder der Category
, Protocol
oder Extension
Name sein.
So erstellen Sie CategoryBaseClass + CategoryName.m/.h:
Xcode6-Beta5-Update
Die Benutzeroberfläche hat sich nun geändert und es ist möglich, eine Kategorie direkt über das Fenster Neu> Datei hinzuzufügen.
Siehe Antwort von unmircea .
Ich war selbst überrascht, und ich schätze, weil Swift sie vergessen über das gute alte Objective-C.
Sie haben zwei Möglichkeiten:
Erstellen Sie eine Objective-C-Klasse mit dem Kategorienamen, z. B. UIView+Powerups
, Und ändern Sie dann die Schnittstelle manuell so, dass sie der Kategorie entspricht. Beachten Sie, dass das Snippet für die Kategorieschnittstelle und -implementierung noch funktioniert. Dies ist also besonders einfach: Geben Sie @interface-category
Und @implementation-category
Ein.
Importiere es von Xcode 5! Verwenden Sie diesen Befehl:
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/
Schließen Sie Xcode 6 und öffnen Sie es erneut. Im Assistenten für die neue Datei finden Sie "Objective-C Category".
Es gibt keine vordefinierte Vorlage zum Erstellen einer Kategorie in Xcode 6 Beta (derzeit). Diese Option wird möglicherweise später hinzugefügt. Als Workaround kannst du ein Cocoa Touch Class
(es ist nicht das richtige, das ich kenne, aber keine andere Möglichkeit) mit dem Namen UIImage+Additions
(ClassName + CategoryName) und überschreiben seine Schnittstelle und Implementierung so etwas wie
#import <UIKit/UIKit.h>
@interface UIImage(Additions)
+(void)testMethod;
@end
#import "UIImage+Additions.h"
@implementation UIImage (Additions)
+(void)testMethod
{
}
@end
Bearbeiten
Diese Antwort wurde verfasst, bevor eine Möglichkeit zum Erstellen einer Kategorie in der Xcode 6-Beta gefunden wurde. Überprüfen Sie die Antwort von unmircea auf die richtige Art und Weise, eine Kategorie zu erstellen
Erweitern die fantastische Antwort von unmircea Re: wie man eine benutzerdefinierte Kategorie erstellt, um eine benutzerdefinierte UIColor
Palette zu implementieren, kann man eine Kategorie erstellen.
Sobald Sie Ihre Kategorie erstellt haben (in diesem Beispiel eine Kategorie mit dem Namen ColorPalette
von Klasse UIColor
), haben Sie einen Header und eine Implementierungsdatei.
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];
}
Um Ihre benutzerdefinierte Farbpalette zu verwenden, importieren Sie einfach die Kopfzeile in die Klasse, in der Sie Ihre benutzerdefinierten Farben implementieren möchten:
#import "UIColor+ColorPalette.h"
und nennen Sie die Farbe wie eine Standardfarbe wie redColor
, greenColor
oder blueColor
.
Hier ist ein Link zu einer etwas ausführlicheren Diskussion zum Erstellen einer benutzerdefinierten Palette.
Außerdem finden Sie hier ein Tool, mit dem Sie die benutzerdefinierten Farbwerte auswählen können
Sie können einfach die gewünschten Vorlagen aus einer älteren Version von Xcode kopieren. Ich habe dafür ein Shell-Skript erstellt: https://github.com/cDigger/AddMissingTemplates
Sie können eine "Erweiterungs" -Datei wie NSString + Helper erstellen:
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 {
}
Getan. Viel Spaß beim Codieren