Prefix bzw. Suffix in Label

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Prefix bzw. Suffix in Label

    Ich habe eine kleine App an der ich gerade bastel.
    Diese besteht aus einem MainViewController und vier weiteren ViewControllern die Textfelder enthalten die per Button Daten an den MainVC schicken.
    Der MainViewController empfängt von den anderen per Textfeld Daten die dann in Labels geschrieben werden.
    So weit so gut, funktioniert ja auch alles.

    Nun würde ich aber gerne in den Labels oder auch schon im Textfeld einen Präfix bzw. einen Suffix einbinden.
    Z.b. m für Meter oder mm für Millimeter die auch im Label stehen sollen.
    oder als Präfix z.B. ein A/...

    Leider habe ich keine Ahnung wie sich das bewerkstelligen lässt in Swift4.
    Hat von Euch wer Ahnung davon ?

    Ich

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von TommyXC ()

  • Wenn es Dir nur um eine Anzeige im Label geht, kannst Du den entsprechenden NSString ja anpassen ... z. B. per Format-String oder durch Anhängen / Voranstellen von Zeichenketten. Die "saubere" Variante wäre aber die Definition und Verwendung eines entsprechenden NSNumberFormatters.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Da ich noch nie einen Prefix oder Suffix in einem Code benötigt habe, habe ich mal folgendes ausprobiert.
    Leider funktioniert es nicht, was mache ich falsch ?

    Ich muss dazu sagen, ich bin absoluter Anfänger das programmieren in Swift anbelangt...

    Quellcode

    1. class DistanceViewController: UIViewController, UITextFieldDelegate{
    2. @IBOutlet weak var TextData: UITextField!
    3. var DataPrefix = NSMutableAttributedString(string: "m")
    4. func Datapinput(textField: UITextField) {
    5. if textField == TextData {
    6. if TextData.text == "" {
    7. TextData.attributedText = DataPrefix
    8. }
    9. }
    10. TextData.addTarget(self, action: Selector(("m:")), for:UIControlEvents.editingChanged)
    11. }
    12. func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    13. let maxLength = 20
    14. let currentString: NSString = textField.text! as NSString
    15. let newString: NSString =
    16. currentString.replacingCharacters(in: range, with: string) as NSString
    17. return newString.length <= maxLength
    18. }
    19. override func viewDidLoad(){
    20. super.viewDidLoad()
    21. TextData.delegate = self
    22. }
    23. }
    Alles anzeigen
  • Ich muss gestehen, dass ich die Swift-Syntax einfach nicht verstehe ... was bezweckst Du mit dem Code? Warum definierst Du eine Action auf ein UITextField mit einem Selektor, den es nicht gibt, und nutzt eine Delegate-Methode, um (scheinbar) die Eingabelänge zu begrenzen. Das Ganze erscheint mir reichlich willkürlich ... aber vielleicht liegt das auch an meinem mangelnden Swift-Verständnis.

    Wenn Du möchtest, das Eingaben und Ausgaben in Deinem UITextField in einer bestimmten Darstellung angezeigt (und evt. eingegeben) werden, schaue nach NSNumberFormatter, diese Klasse ist genau dafür da ... Hat es einen Grund, dass Du meine vorige Antwort komplett ignoriert hast?

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.