Поиск…


Пример пользовательского KeyBoard

Объектив-C и Xib

Добавить цель в существующий проект XCode

введите описание изображения здесь

В Add Target выберите Custom KeyBoard введите описание изображения здесь

Добавьте цель следующим образом:

введите описание изображения здесь

Каталог файлов проекта должен выглядеть примерно так:

введите описание изображения здесь

Здесь myKeyBoard - это имя добавленной цели

Добавьте новый файл Cocoatouch типа UIView и добавьте файл интерфейса

введите описание изображения здесь

Наконец, ваш каталог проекта должен выглядеть так:

введите описание изображения здесь

сделать keyBoardView.xib подклассом keyBoardView

введите описание изображения здесь

Сделать интерфейс в файле keyBoardView.xib

введите описание изображения здесь

Сделать keyBoardView.xib к keyBoardView.h keyBoardView.xib в keyBoardView.h

keyBoardView.h должен выглядеть так:

#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 импортируйте #import "keyBoardView.h"

Объявить свойство клавиатуры @property (strong, nonatomic)keyBoardView *keyboard;

Прокомментируйте

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

Функция viewDidLoad () функции KeyboardViewController.m должна выглядеть так:

- (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;
}

Функции addGestureToKeyboard , pressDeleteKey , keyPressed определены ниже

-(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]];
}

Запустите основное приложение и перейдите в Настройки-> Общие-> Клавиатура-> Добавить новую клавиатуру-> и добавьте клавиатуру с клавиатуры третьей стороны (Отображаемая клавиатураName будет keyBoardCustom)

Имя клавиатуры можно изменить, добавив ключ, называемый Bundle display name и в Value String Value введите нужное имя для клавиатуры основного проекта.

введите описание изображения здесь

Вы также можете посмотреть это видео Youtube



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow