iPhone Code Schnipsel: Maximale Anzahl Zeichen im UITextField begrenzen

Gegeben

Man hat ein UITextField und möchte verhindern, dass ein User mehr als X Zeichen eingeben kann.

Gesucht

Eine Lösung ohne UIAlertView. Es soll nur verhindert werden, dass weitere Zeichen eingegeben werden.

Lösung

Erstmal zwei Konstanten definieren:

static const NSInteger kUserNameMaxLength = 20;
static const NSInteger kTextFieldNameTag = 1;

Dann entsprechend dem UITextField das Tag zuweisen (static const NSInteger) und den delegate setzen:

textField.tag = kTextFieldTagLimited;
textField.delegate = self;

Dann lässt sich das Problem mit dieser UITextFieldDelegate Methode ziemlich einfach lösen:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  if (textField.tag == kTextFieldTagLimited) {
    NSString *testString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    if ([testString length] > kUserNameMaxLength) {    
      textField.text = [textField.text substringToIndex:kUserNameMaxLength];
      return NO;
    }
  }
  return YES;
}

Schlüsselwörter: iphone, objective-c, programmierung, schnipsel

Von Stefan Haubold vor 80 Tagen hinzugefügt (0 Kommentare)

iPhone Code Schnipsel: Clang Static Analyzer

Gegeben

Man hat die ersten ViewController fertig, einiges an Logik geschrieben, so dass die Applikation eigentlich ganz gut funktionieren sollte. Der erste Start endet aber im Debugger und nach kurzem Prüfen ist man sich sicher, dass man irgendwo einen Bug im Object-Lifecycle hat - also ein Retain/Release/Autorelease zu viel oder zu wenig.

Gesucht

Ein schneller Weg, diese Fehler zu finden, ohne seinen eigenen Code noch einmal komplett durchgehen zu müssen.

Lösung

Der Clang Static Analyzer: http://clang-analyzer.llvm.org/

Einfach den letzten Build downloaden und entpacken. Am komfortabelsten ist es, wenn man das Verzeichnis gleich dem PATH hinzufügt. Dann in Xcode ein "Clean All Targets" ausführen und auf der Konsole in das Projektverzeichnis wechseln. Dort gibt man folgendes Kommando ein:

scan-build -k -V xcodebuild -configuration Debug -sdk iphonesimulator3.0

Wenn alles klappt, sollte Clang nun das Projekt scannen und am Ende eine Seite im Default Browser öffnen. Dort findet man dann eine Übersicht aller gefunden Fehler, Bugs und Verstöße gegen Coding Conventions. Die Punkte geht man einzeln durch und bekommt wunderbar erklärte Problembeschreibungen. Das sieht dann z.B. so aus:

Als Folge stehen die Chancen gut, dass der nächste Start der neuen App problemlos klappt.

Schlüsselwörter: iphone, objective-c, programmierung, schnipsel, xcode

Von Stefan Haubold vor 414 Tagen hinzugefügt (0 Kommentare)

Ruby Helper 1.1

Heute erschien endlich Version 1.1 unserer App Ruby Helper im App Store. Es enthält die folgenden neuen Dokumente:

  • RSpec 1.2.4
    • 4 Texte
    • 75 Klassen
    • 26 Module
    • 513 Methoden
  • Spec::Rails 1.2.4
    • 3 Texte
    • 19 Klassen
    • 12 Module
    • 93 Methoden
  • Webrat 0.4.4
    • 2 Texte
    • 18 Klassen
    • 7 Module
    • 136 Methoden

Wir arbeiten außerdem an einem Feature, welches es ermöglicht, weitere Dokumente direkt aus der App runterzuladen (beispielsweise für Ruby 1.9). Voraussichtlich wird dieses Feature aber erst mit dem Release von iPhone OS 3.0 im Sommer veröffentlicht.

Schlüsselwörter: iphone, ruby, ruby on rails

Von Thomas Dohmke vor 492 Tagen hinzugefügt (0 Kommentare)

Drei Links zum Sonntag (XIV)

Schlüsselwörter: iphone, linktips

Von Thomas Dohmke vor 508 Tagen hinzugefügt (0 Kommentare)

iPhone Code Schnipsel: Kennung des Gerätes

Gesucht

Die Kennung (Identifier bzw. UDID) eines iPhone oder iPod Touch programmatisch ermitteln.

Lösung

UIDevice *device = [UIDevice currentDevice];
NSString *uniqueIdentifier = [device uniqueIdentifier];

UIDevice bietet außerdem Instanzmethoden zur Bestimmung von Name (name) und Modell (model) des Gerätes sowie Name (systemName) und Version (systemVersion) des Betriebssystems. Beispiel für mein iPhone:

Name: MyPhone
Model: iPhone
SystemName: iPhone OS
SystemVersion: 2.2.1

Schlüsselwörter: iphone, programmierung, schnipsel

Von Thomas Dohmke vor 509 Tagen hinzugefügt (0 Kommentare)

1 2 3 ... 6 Ältere Artikel »

Auch abrufbar als: Atom

Twitter

Uns auf Twitter verfolgen: