Nummernblock selbst erstellt und dazu ein paar fragen

  • Pascal schrieb:

    Hey, das Keyboard sieht aus als wolltest du mir (MedCalc) Konkurrenz machen! ;)
    Hehe :) hab ich noch nicht von gehört von dem App.
    Hab jetzt auch hinbekommen.

    Quellcode

    1. /*
    2. if ([blub isEqualToString:@"mmol"]) {
    3. NSLog(@"Button mmol ist gedrückt");
    4. [sender setImage:ButtonMMol forState:UIControlStateNormal];
    5. [mgdlButton setImage:ButtonMgdl forState:UIControlStateHighlighted];
    6. } else if ([blub isEqualToString:@"mgdl"]) {
    7. NSLog(@"Button mgdl ist gedrückt");
    8. [mgdlButton setImage:ButtonMgdl1 forState:UIControlStateNormal];
    9. [mmolButton setImage:ButtonMMol1 forState:UIControlStateHighlighted];
    10. }*/
    11. if (!sender.selected){
    12. mgdlButton.selected = !mgdlButton.selected;
    13. mmolButton.selected = !mmolButton.selected;
    14. }
    Alles anzeigen



    Der Auskommentierte Teil war der komplexe und ein bisschen übertriebene Teil :) der andere if Block ist deutlich leichter.
    Danke für die nette Hilfe.

    Schön das das es dieses Forum gibt! Daumen HOCH! :thumbsup:

    edit: was ich jetzt noch gern machen würde ist ein einfaches Textfiel. Wenn man draufklickt soll mein eigener Controller ausgefahren werden. Wie macht man das?

    Lg
  • MedCalc ist eine medizinische Formelsammlung, das Keyboard schaut vom layout her deinem ziemlich ähnlich. Ist noch gratis bis die neue Version (bereits submitted) erscheint, beeil dich also um zu vergleichen. ;)

    Warum setzt du für deine Einheiten-Buttons die Bilder jeweils beim Tap selber, anstatt ihnen im viewDidLoad einfach ein Bild für den State UIControlStateSelected zuzuweisen, und dann beim touch den state (button1.selected = YES) zu ändern? macmoonshine hat das ja bereits vorgeschlagen.
    Widgetschmie.de • Life is too short for gadgets
  • Die Tastatur hab ich komplett selbst designed.
    Ich setz doch gar nicht die Bilder selber.
    Das macht InterfaceBuilder. Hab doch gesagt das hier ist der aktuelle Code

    Quellcode

    1. if (!sender.selected){
    2. mgdlButton.selected = !mgdlButton.selected;
    3. mmolButton.selected = !mmolButton.selected;
    4. }



    Jetzt ist halt die Frage wie oben schon erwähnt wie man die Tastatur einblenden kann die ich gemacht habe.
  • TeamNoX schrieb:

    Die Tastatur hab ich komplett selbst designed.
    Ich setz doch gar nicht die Bilder selber.
    Das macht InterfaceBuilder. Hab doch gesagt das hier ist der aktuelle Code

    Quellcode

    1. if (!sender.selected){
    2. mgdlButton.selected = !mgdlButton.selected;
    3. mmolButton.selected = !mmolButton.selected;
    4. }



    Jetzt ist halt die Frage wie oben schon erwähnt wie man die Tastatur einblenden kann die ich gemacht habe.


    Ahaa, alles klar. Nimm doch jeweils die Methodennamen mit rein wenn du Code postest, so sieht man auch was wo passiert. ;)

    Wenn du ein Textfeld anklickst bekommt dies den Aufruf becomeFirstResponder. Die einfachsten Möglichkeiten sind:

    • Eine Subklasse vom Textfeld erstellen und die "becomeFirstResponder" überschreiben ([super becomeFirstResponder] nicht vergessen!), dort dann dein Keyboard einblenden
    • Eine Subklasse vom Textfeld erstellen und die "becomeFirstResponder" überschreiben ([super becomeFirstResponder] nicht vergessen!), dort dann dem aktuellen ViewController mitteilen, dass du first controller wurdest und dem ViewController das Einblenden deiner Tastatur überlassen.
    • Die Delegate-Methode "textFieldShouldBeginEditing:" verwenden (im ViewController)
    Widgetschmie.de • Life is too short for gadgets
  • Pascal schrieb:

    Eine Subklasse vom Textfeld erstellen und die "becomeFirstResponder" überschreiben ([super becomeFirstResponder] nicht vergessen!), dort dann dein Keyboard einblenden
    Hab eine Subklasse erstellt

    Quellcode

    1. #import <UIKit/UIKit.h>
    2. @interface customTextfiel : UITextView {
    3. }
    4. @end
    Alles anzeigen



    Jedoch weiß ich nicht wie du das jetzt meinst mit dem überschreiben. Hab gerade nen bisschen im Internet geschaut aber nicht wirklich was passendes gefunden wo jemand auch seine eigene Tastatur einblenden will statt der standart Tasta.
    Könntest du mir da helfen?

    Lg
  • Wenn du nicht weisst, wie man Subklassen erstellt (und dass man Klassennamen immer gross schreibt!) und Methoden überschreibt, dann solltest du dir definitiv zuerst die Grundlagen erarbeiten! Ein eigenes Keyboard blenden einige Programme ein, auch einige OpenSource-Programme, du könntest dir dort Inspirationen holen.
    Widgetschmie.de • Life is too short for gadgets
  • Pascal schrieb:

    Wenn du nicht weisst, wie man Subklassen erstellt (und dass man Klassennamen immer gross schreibt!) und Methoden überschreibt, dann solltest du dir definitiv zuerst die Grundlagen erarbeiten! Ein eigenes Keyboard blenden einige Programme ein, auch einige OpenSource-Programme, du könntest dir dort Inspirationen holen.

    @fwtag: Er hat Jehova gesagt... ;) +scnr+
    „Meine Komplikation hatte eine Komplikation.“
  • So habs jetzt geschafft.

    Quellcode

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2. CustomNumberpadViewController *controller = [[CustomNumberpadViewController alloc] initWithNibName:@"CustomNumberpadViewController" bundle:nil];
    3. controller.delegate = self;
    4. customTextfield.inputView = controller.view;
    5. customTextfield2.inputView = controller.view;
    6. [self.window makeKeyAndVisible];
    7. return YES;
    8. }



    ich hab jetzt jedoch das problem das wegen der StatusBar die Tastatur nicht komplett angezeigt wird und unten halt ein bisschen abschnitten wird. Halt genauso hoch wie die Statusbar oben ist.
    Wie kann ich diese hochziehen.
    Und dann noch eine andere Frage. Die Custom Tastatur will ich wieder einfahren jedoch möchte ich das nicht so machen wie jetzt ich es hier gemacht habe.

    Quellcode

    1. - (void)doneButtonPressed{
    2. [self.customTextfield resignFirstResponder];
    3. [self.customTextfield2 resignFirstResponder];
    4. NSLog(@"FEHLER");
    5. }



    Habt ihr eine Idee? Ich möchte halt nicht immer angeben welches das Ausgewählte Textfield ist sondern möchte das dynamisch haben.

    Lg

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

  • macmoonshine schrieb:


    Die Maske kannst Du im Interface Builder im Size-Inspektor oder über die Property autoresizingMask einstellen. Probiere mal einen flexiblen oberen Rand und eine flexible Breite aus.
    Nur die Frage welches View muss ich wählen das Hauptfenster mit den Textfeldern was die volle Breit und Höhe hat siehe Screenshot oder die Tastatur welches genau die größe vom View hat wie groß die Tastatur auch ist.

    Und wo kann ich da etwas mit flexiblem Rand auswählen :)

    Lgg

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