Сейчас я делаю пользовательскую клавиатуру для приложения. Я установил клавиатуру, которая имитирует внешний вид обычной клавиатуры, но с определенными клавишами, которые я вставил. Я также настроил контроллер представления, который имеет изображение вместе с серией прозрачных кнопок 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 для текстовых полей контроллера этого представления.
Мне нужна помощь, чтобы поместить это в представление вместо контроллера представления таким образом, чтобы это работало.
Это мои основные вопросы:
Нужно ли вместо этого поместить весь этот код в представление?
Мне вообще нужен этот контроллер вида?
Если мне не нужен контроллер вида, что мне нужно сделать, чтобы поместить изображение клавиатуры в вид?
Любая помощь приветствуется