Создание пользовательской клавиатуры на iPad, нужна помощь с некоторыми деталями - PullRequest
2 голосов
/ 10 июня 2011

Сейчас я делаю пользовательскую клавиатуру для приложения. Я установил клавиатуру, которая имитирует внешний вид обычной клавиатуры, но с определенными клавишами, которые я вставил. Я также настроил контроллер представления, который имеет изображение вместе с серией прозрачных кнопок UIB, помещенных над каждой из клавиш в там же Вот код на данный момент:

//CustomKeyBoardViewController.h

#import <UIKit/UIKit.h>

@protocol CustomKeyBoardViewControllerDelegate
- (void) buttonTapped:(NSString*)text;
- (void) doneTapped;
@end


@interface CustomKeyBoardViewController : UIViewController {
    id<CustomKeyBoardViewControllerDelegate> _delegate;
}

-(IBAction)spaceTapped:(id)sender;
-(IBAction)goTapped:(id)sender;

-(IBAction)xTapped:(id)sender;

-(IBAction)plusTapped:(id)sender;
-(IBAction)minusTapped:(id)sender;
-(IBAction)arrowTapped:(id)sender;
-(IBAction)slashTapped:(id)sender;

-(IBAction)oneTapped:(id)sender;
-(IBAction)twoTapped:(id)sender;
-(IBAction)threeTapped:(id)sender;
-(IBAction)fourTapped:(id)sender;
-(IBAction)fiveTapped:(id)sender;
-(IBAction)sixTapped:(id)sender;
-(IBAction)sevenTapped:(id)sender;
-(IBAction)eightTapped:(id)sender;
-(IBAction)nineTapped:(id)sender;
-(IBAction)zeroTapped:(id)sender;

@property(nonatomic, assign) id<CustomKeyBoardViewControllerDelegate> _delegate;

@end


//CustomKeyBoardViewController.m

#import "CustomKeyBoardViewController.h"

@implementation CustomKeyBoardViewController

@synthesize _delegate, Keyboard;

- (IBAction)spaceTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@" "];}}

- (IBAction)goTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"Go"];}}


- (IBAction)xTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"x"];}}


- (IBAction)plusTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"+"];}}

- (IBAction)minusTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"-"];}}

- (IBAction)arrowTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"^"];}}

- (IBAction)slashTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"/"];}}


- (IBAction)oneTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"1"];}}

- (IBAction)twoTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"2"];}}

- (IBAction)threeTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"3"];}}

- (IBAction)fourTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"4"];}}

- (IBAction)fiveTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"5"];}}

- (IBAction)sixTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"6"];}}

- (IBAction)sevenTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"7"];}}

- (IBAction)eightTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"8"];}}

- (IBAction)nineTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"9"];}}

- (IBAction)zeroTapped:(id)sender {if (_delegate != nil) {[_delegate buttonTapped:@"0"];}}

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return ((interfaceOrientation == UIInterfaceOrientationPortrait) || 
            (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown));
}


- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];}


- (void)viewDidUnload {[super viewDidUnload];}


- (void)dealloc {[super dealloc];}


@end

Я выяснил это с помощью этого и этого .

Проблема заключается в использовании его в другом контроллере представления. Я прочитал, что вам нужно использовать пользовательский UIView и сделать его inputView для текстовых полей контроллера этого представления.

Мне нужна помощь, чтобы поместить это в представление вместо контроллера представления таким образом, чтобы это работало. Это мои основные вопросы:

Нужно ли вместо этого поместить весь этот код в представление?

Мне вообще нужен этот контроллер вида?

Если мне не нужен контроллер вида, что мне нужно сделать, чтобы поместить изображение клавиатуры в вид?

Любая помощь приветствуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...