negative Zahlen Button +/- im decimal Pad

  • negative Zahlen Button +/- im decimal Pad

    Hallo liebe Entwickler,

    hat jemand für mich bitte ein gutes Tut oder eine Hilfe wie man einen Button in das decimal Pad mit einfügen kann für negative Zahlen (+/-).

    Die suche hier im Forum ergab leider nichts und über Google ist auch nicht gerade der bringer was einem da angeboten wird mit den Schlagwörtern (xcode swift decimal pad negative zahlen button)

    Danke schonmal für jegliche hilfe!!!
  • Ich wollte heute eigentlich lieb sein aber, hast du den Link geklickt? Hast du gesehen, dass inputViewController vom Typ uiINPUTviewcontroller ist? könnte das was mit INPUT zu tun haben? Hast du dir mal die Klasse angesehen und die ersten 2 Sätze gelesen? Falls nicht hier:


    To create a custom keyboard, start by subclassing the UIInputViewController class. Add your keyboard’s user interface to the inputView property of your subclass.
    Google: "UIInputViewController Swift" bringt das ein oder andere Tutorial falls die Apple Doku nicht ausreicht.
    Das Herz besitzt Gründe, die die Vernunft nicht kennt.
  • Hallo,

    ich hab nun eine ganze weile herrumgedoktort aber es will einfach nicht und dabei kam mir die idee einfach vor dem textfeld einen button setzen der dann der zahl ein negatives "-" vorzeichen gibt. somit sollte es nicht notwendig sein extra eine eigene tastatur zu erstellen.
    kann mir jemand bitte helfen wie man so etwas bewerkstelligt, finde einfach keinen ansatz dazu?
    dem button eine funktion geben ist klar

    Quellcode

    1. @IBAction func negativButton(sender: UIButton) {
    2. }
    aber ich finde keinen anhaltspunkt im netz bzw schlagwörter zum suchen für ein tutorial

    lg matze
  • hab da ein tut für einen rechner gefunden und wollte es für mich anpassen

    Quellcode

    1. @IBAction func negativButton(sender: UIButton) {
    2. var displayedText: String = trfhö.text!;
    3. // do not change sign if the display is empty
    4. if (displayedText == "0" || displayedText == "") {
    5. return;
    6. }
    7. displayedText = negative ? displayedText.substringFromIndex(advance(displayedText.startIndex, 1)) : "-" + displayedText
    8. trfhö.text = displayedText
    9. currentValue = -currentValue
    10. negative = !negative;
    11. }
    Alles anzeigen
    aber bekomme fehlermeldungen "Use of unresolved identifier 'negative' " und "Use of unresolved identifier 'currentValue' " was muss ich da bitte noch anpassen?
  • hab es jetzt damit gelöst

    Quellcode

    1. @IBAction func negativButton(sender: UIButton) {
    2. if trfhö.text!.isEmpty {
    3. trfhö.text = trfhö.text
    4. }
    5. handleInput("-")
    6. }
    7. func handleInput(str: String) {
    8. if str == "-" {
    9. if trfhö.text!.hasPrefix(str) {
    10. // Strip off the first character (a dash)
    11. trfhö.text = trfhö.text!.substringFromIndex(trfhö.text!.startIndex.successor())
    12. } else {
    13. trfhö.text = str + trfhö.text!
    14. }
    15. } else {
    16. trfhö.text = trfhö.text!
    17. }
    18. }
    Alles anzeigen
    es funktioniert auch und wird auch richtig berechnet aber meine textfelder berechnen sofort mit "textEditingChanged" nur leider geht das mit meinem +/- button nicht.

    wie kann ich das feld updaten lassen bitte?

    und ja okay bin kein profiprogrammierer und sollte wenigstens an der richtigen formatierung sprich klammern und semikola achten,

    lg matze

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

  • matze511 schrieb:

    und ja okay bin kein profiprogrammierer und sollte wenigstens an der richtigen formatierung sprich klammern und semikola achten,

    Ist ja nicht schlimm. Ich mache das auch nicht beruflich. Hoffe nur, solche Hinweise bringen Dich etwas weiter. Wenn jetzt auch nicht konkret bei diesem Problem, so doch allgemein im Umgang mit der Sprache...

    Und wo wir bei 'richtiger formatierung' sind... Groß- und Kleinschreibung in der eigenen natürlichen Sprache gehört für mich eigentlich auch dazu... Das erhöht die Lesbarkeit ungemein... ;)

    Das führt mich zum nächsten Punkt. Was willst Du damit

    matze511 schrieb:

    Quellcode

    1. if trfhö.text!.isEmpty {
    2. trfhö.text = trfhö.text
    3. }

    und damit

    matze511 schrieb:

    Quellcode

    1. } else {
    2. trfhö.text = trfhö.text!
    3. }

    bezwecken?

    'Weise einer Variable sich selbst zu' scheint mir nicht besonders sinnvoll... :)

    Aber ich verstehe auch insgesamt Deinen Ansatz nicht. Aus einem anderen Thread von Dir geht hervor, daß trfhö ein Double ist. Warum wilst Du das Vorzeichen einer Zahl in dessen Textdarstellung ändern, nicht aber das Vorzeichen der Zahl selbst?

    Etwas wie (Pseudocode)

    Quellcode

    1. toggleSignedness() {
    2. trfhö *= -1.0
    3. updateGUI()
    4. }

    scheint mir da klarer und einfacher zu sein?

    Vielleicht erklärst Du da noch mal genauer, was eigentlich genau Dein Ziel ist.

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

  • Erstmal danke für deinen Hinweiß, hab das dann mal so angepasst und es funktioniert.
    Aber das hier

    Quellcode

    1. toggleSignedness() {
    2. trfhö *= -1.0
    3. updateGUI()
    4. }
    verstehe ich nicht ganz, kannst du mir das anhand meines Codschnipsels erklären?

    Zur Erklärung für dich. ich brauche die negativen Zahlen, weil trfhö (Traufhöhe) unter und über Null liegen kann. Aus dem Thread geht ja hervor das mir das "-" in dem Numpad fehlt, damit ich die negativen Zahlen direkt eintragen kann.
    Beim Tutorials durchgehen und an einem Testprojekt ausprobieren, um ein eigenes Numpad zu erstellen, ist mir dann die Idee gekommen, warum nicht einfach die Zahl mit einem Button ins Negative setzen, ist bestimmt einfacher und schlanker als eine eigene Tastatur zu entwickeln, wobei die App ja eh sehr einfach gehalten werden soll und sich nur auf das wesentliche beziehen.
    Somit hab ich mir Examples für Taschenrechner gesucht um dieses Stückchen Code für mich anzupassen aber leider Funktioniert "textEditingChanged" damit nicht und daher dachte ich mit dem Textfeld Update geht es.

    LG Matze
  • *seufz*

    Nimm's mir bitte nicht übel, aber ich habe ein bißchen so den Eindruck, daß Du keinen blassen Schimmer davon hast, was Du eigentlich machst... ;) Ist nicht böse gemeint.^^

    Ich habe die Vermutung, daß da grundlegend Dein Design auch problematisch ist, und Du das Model-View-Controller-Prinzip nicht so recht verstanden hast... Irgendwo mußt Du doch auch Zahlenwerte, z.B. für die Traufhöhe speichern, mit denen Du dann die eigentliche Berechnungen machst, oder nicht?

    Mmhhh... Ich wüßte jetzt spontan nicht, wie ich Dir weiterhelfen könnte. Ich könnte Dir anbieten, mal über Dein Projekt rüberzuschauen...