Ich möchte UIColor
mit Xcode 6 eine Kategorie in meiner App erstellen. In Xcode 6 gibt es jedoch keine Objective-C-Kategoriedateivorlage.
Gibt es eine Option zum Erstellen einer Kategorie in Xcode 6?
@interface UIColor(MyCategory) ...
Ich möchte UIColor
mit Xcode 6 eine Kategorie in meiner App erstellen. In Xcode 6 gibt es jedoch keine Objective-C-Kategoriedateivorlage.
Gibt es eine Option zum Erstellen einer Kategorie in Xcode 6?
@interface UIColor(MyCategory) ...
Antworten:
Sie haben nicht vergessen. Sie haben es einfach bewegt, ohne es jemandem zu sagen.
Klicken Sie auf File
-> New
->File
Wählen Sie Objective-C file
unter Sources
in iOS
bzw. Mac OS
aus und klicken Sie auf Weiter
Jetzt unter File Type:
wählen entweder Category
, Protocol
oderExtension
PS. Unter File Name:
was auch immer Sie hier wird geben Sie entweder das Category
, Protocol
oder Extension
Namen.
Objective-C File
von XCode 6 angegebene Beschreibung lautet "Eine leere Objective-C-Datei" und nicht meine Beschreibung "eine der alten, überhaupt nicht leeren Objective-C-Dateien, an die Sie gewöhnt sind". , was mich ziemlich nett abwarf!
So erstellen Sie CategoryBaseClass + CategoryName.m / .h :
Xcode6-Beta5-Update
Die Benutzeroberfläche wurde geändert und es ist möglich, eine Kategorie direkt über das Fenster Neu> Datei hinzuzufügen.
Siehe die Antwort von unmircea .
Ich war selbst überrascht und ich denke, wegen Swift haben sie das gute alte Objective-C vergessen .
Sie haben zwei Möglichkeiten:
Erstellen Sie beispielsweise eine Objective-C-Klasse mit dem Kategorienamen und UIView+Powerups
ändern Sie die Schnittstelle manuell so, dass sie mit der der Kategorie übereinstimmt. Beachten Sie, dass das Snippet für die Kategorieschnittstelle und die Implementierung noch funktioniert. Das ist also besonders einfach: Geben Sie @interface-category
und ein @implementation-category
.
Importieren Sie es aus 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 (vorerst). Diese Option wird möglicherweise später hinzugefügt. Als Workaround können Sie einen Cocoa Touch Class
Namen UIImage+Additions
(ClassName + CategoryName) erstellen (es ist nicht richtig, ich weiß, aber auf keine andere Weise ) und seine Schnittstelle und Implementierung überschreiben
#import <UIKit/UIKit.h>
@interface UIImage(Additions)
+(void)testMethod;
@end
#import "UIImage+Additions.h"
@implementation UIImage (Additions)
+(void)testMethod
{
}
@end
Bearbeiten
Diese Antwort wurde geschrieben, 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
Wenn Sie die fantastische Antwort von unmircea erweitern : Wie Sie eine benutzerdefinierte Kategorie erstellen, um eine benutzerdefinierte UIColor
Palette zu implementieren , können Sie eine Kategorie erstellen.
Sobald Sie Ihre Kategorie erstellt haben (in diesem Beispiel ist es eine Kategorie namens ColorPalette
der Klasse UIColor
), erhalten 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 rufen Sie die Farbe auf wie ein Standardfarbe wie redColor
, greenColor
oder blueColor
.
Hier ist ein Link zu einer etwas ausführlicheren Diskussion über das Erstellen einer benutzerdefinierten Palette.
Darüber hinaus 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. Dazu habe ich 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 {
}
Erledigt. Viel Spaß beim Codieren