Swift iPad erkennen

Wollt ihr in Swift unterscheiden, ob das aktuelle Gerät ein iPad oder ein iPhone ist, reichen die folgenden Zeilen:


if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
{
// iPad Code
}

Das Equivalent dazu in Objective-C sieht folgendermaßen aus:


if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
// iPad Code
}

Text insets in UITextField

Um Text insets in UITextField zu verwenden ist es am einfachsten die zwei Methoden -textRectForBounds: und editingRectForBounds: zu überschreiben.
Dadurch wird dann sowohl der Text, als auch der Platzhalter um den gewünschten Abstand eingerückt.

Hier der Beispielcode in Swift:


//Textposition
override func editingRectForBounds(bounds: CGRect) -> CGRect {
return CGRectInset( bounds , 8 , 8 )
}


//Platzhalterposition
override func textRectForBounds(bounds: CGRect) -> CGRect {
return CGRectInset( bounds , 8 , 8)
}

Und der Beispielcode für Objective-C:

//Textposition
- (CGRect)editingRectForBounds:(CGRect)bounds {
return CGRectInset( bounds , 8 , 8 );
}


//Platzhalterposition
- (CGRect)textRectForBounds:(CGRect)bounds {
return CGRectInset( bounds , 8 , 8 );
}

Swift: Viewcontroller vom Storyboard initialisieren

Unter Swift ist es genau wie unter Objective-C möglich, Viewcontroller aus dem Storyboard zu initialisieren. Lediglich die Syntax hat sich geändert.
Um in Swift einen Viewcontroller zu initialisieren verwendet folgendes Code-Snippet:

let storyboard = UIStoryboard(name: "StoryboardName", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("myViewController") as! UIViewController

Swift: Delegate implementieren

Apples neue Programmiersprache Swift ist an manchen Stellen etwas gewöhnungsbedürftig. Falls ihr euch fragt, wie ihr in einer Klasse einen Delegate implementieren könnt, findet ihr hier ein Beispiel:

class TestViewController: UIViewController, UIWebViewDelegate{

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

Delegates werden in Swift mit Kommas hinter den Typ der Klasse angehängt. Im Beispiel implementiert die Klasse TestViewController den UIWebViewDelegate.

Xcode process launch failed: Security

Wenn bei euch beim starten der App auf einem Gerät in Xcode „process launch failed: Security“ angezeigt wird probiert folgendes:

  • Sucht die installierte App auf dem Homescreen
  • Startet die App
  • Bestätigt im erscheinenden Popup, dass ihr die App wirklich starten wollt

Von nun an solltet ihr die App wieder wie gewohnt über Xcode ausführen können.