#xcode #ipad
#xcode #iPad
Вопрос:
Прямо сейчас я создаю пользовательскую клавиатуру для приложения. Я настроил клавиатуру, которая имитирует внешний вид обычной клавиатуры, но с определенными клавишами, которые я ввел. Я также настроил контроллер просмотра, в котором есть изображение вместе с серией прозрачных UIButtons, размещенных над каждой из клавиш в IB. Пока что вот код:
//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 для текстовых полей этого контроллера представления.
В чем мне нужна помощь, так это в том, чтобы поместить это в представление вместо контроллера представления таким образом, чтобы это работало. Это мои основные вопросы:
Нужно ли мне вместо этого поместить весь этот код в представление?
Нужен ли мне вообще этот контроллер просмотра?
Если мне не нужен view controller, что мне нужно сделать, чтобы поместить изображение клавиатуры в view?
Любая помощь приветствуется