Zoeken…


Voorbeeld van een aangepast toetsenbord

Objective-C en Xib

Voeg een doel toe aan een bestaand XCode-project

voer hier de afbeeldingsbeschrijving in

Selecteer Aangepast toetsenbord in het doel toevoegen voer hier de afbeeldingsbeschrijving in

Voeg het doel als volgt toe:

voer hier de afbeeldingsbeschrijving in

Uw projectbestandsmap moet er ongeveer zo uitzien

voer hier de afbeeldingsbeschrijving in

Hier is myKeyBoard de naam van het toegevoegde doel

Voeg een nieuw Cocoatouch-bestand van het type UIView toe en voeg een interfacebestand toe

voer hier de afbeeldingsbeschrijving in

Eindelijk zou je projectmap er zo uit moeten zien

voer hier de afbeeldingsbeschrijving in

maak van de keyBoardView.xib een subklasse van keyBoardView

voer hier de afbeeldingsbeschrijving in

Maak een interface in het bestand keyBoardView.xib

voer hier de afbeeldingsbeschrijving in

Maak verbindingen met vanuit het bestand keyBoardView.xib naar keyBoardView.h

keyBoardView.h zou er uit moeten zien

#import <UIKit/UIKit.h>

@interface keyBoardView : UIView

@property (weak, nonatomic) IBOutlet UIButton *deleteKey;
//IBOutlet for the delete Key
@property (weak, nonatomic) IBOutlet UIButton *globe;
//Outlet for the key with title globe which changes the keyboard type
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *keys;
//Contains a colloection of all the keys '0 to 9' '+' '-' and '.'

@end

keyBoardViewController.h bestand keyBoardViewController.h #import "keyBoardView.h"

Declareer een eigenschap voor toetsenbord @property (strong, nonatomic)keyBoardView *keyboard;

Reageren op de

@property (nonatomic, strong) UIButton *nextKeyboardButton and all the code associated with it

De functie viewDidLoad () van het KeyboardViewController.m-bestand moet er zo uitzien

- (void)viewDidLoad {
    [super viewDidLoad];
    self.keyboard=[[[NSBundle mainBundle]loadNibNamed:@"keyBoardView" owner:nil options:nil]objectAtIndex:0];
      self.inputView=self.keyboard;
    [self addGestureToKeyboard];

    // Perform custom UI setup here
//    self.nextKeyboardButton = [UIButton buttonWithType:UIButtonTypeSystem];
//    
//    [self.nextKeyboardButton setTitle:NSLocalizedString(@"Next Keyboard", @"Title for 'Next Keyboard' button") forState:UIControlStateNormal];
//    [self.nextKeyboardButton sizeToFit];
//    self.nextKeyboardButton.translatesAutoresizingMaskIntoConstraints = NO;
//    
//    [self.nextKeyboardButton addTarget:self action:@selector(advanceToNextInputMode) forControlEvents:UIControlEventTouchUpInside];
//    
//    [self.view addSubview:self.nextKeyboardButton];
//    
//    [self.nextKeyboardButton.leftAnchor constraintEqualToAnchor:self.view.leftAnchor].active = YES;
//    [self.nextKeyboardButton.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
}

De functies addGestureToKeyboard , pressDeleteKey , keyPressed worden hieronder gedefinieerd

-(void) addGestureToKeyboard
{
    [self.keyboard.deleteKey addTarget:self action:@selector(pressDeleteKey) forControlEvents:UIControlEventTouchUpInside];
    [self.keyboard.globe addTarget:self action:@selector(advanceToNextInputMode) forControlEvents:UIControlEventTouchUpInside];
    
    for (UIButton *key in self.keyboard.keys)
    {
        [key addTarget:self action:@selector(keyPressed:) forControlEvents:UIControlEventTouchUpInside];
    }
    
    
}
-(void) pressDeleteKey
{
    [self.textDocumentProxy deleteBackward];
}

-(void)keyPressed:(UIButton *)key
{
    [self.textDocumentProxy insertText:[key currentTitle]];
}

Voer de hoofdtoepassing uit en ga naar Instellingen-> Algemeen-> Toetsenbord-> Nieuw toetsenbord toevoegen-> en toetsenbord toevoegen vanuit het toetsenbordgedeelte van derden (de weergegeven toetsenbordnaam zou keyBoardCustom zijn)

De toetsenbordnaam kan worden gewijzigd door een sleutel toe te voegen met de naam Bundle display name en voer in de Value String Value de gewenste naam in voor het toetsenbord van het hoofdproject.

voer hier de afbeeldingsbeschrijving in

Je kunt deze YouTube-video ook bekijken



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow