iOS
Aangepast toetsenbord
Zoeken…
Voorbeeld van een aangepast toetsenbord
Objective-C en Xib
Voeg een doel toe aan een bestaand XCode-project
Selecteer Aangepast toetsenbord in het doel toevoegen
Voeg het doel als volgt toe:
Uw projectbestandsmap moet er ongeveer zo uitzien
Hier is myKeyBoard de naam van het toegevoegde doel
Voeg een nieuw Cocoatouch-bestand van het type UIView toe en voeg een interfacebestand toe
Eindelijk zou je projectmap er zo uit moeten zien
maak van de keyBoardView.xib
een subklasse van keyBoardView
Maak een interface in het bestand keyBoardView.xib
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.
Je kunt deze YouTube-video ook bekijken