Customkeyboard Implemention with UISearchBar?

社会主义新天地 提交于 2019-12-11 07:34:40

问题


I try to implement customkeyboard with UISearchBar .first of all my mainclass.h where i use UISearchBar is look like this

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@class PashtoKeyboard;
@class SearchBar;
@interface MainViewController : UIViewController<UISearchBarDelegate > {
  IBOutlet SearchBar *searchBar;
  PashtoKeyboard            *pashtoKeyboard;
}
@property(nonatomic,retain)     PashtoKeyboard  *pashtoKeyboard;
@property (nonatomic,retain) SearchBar *searchBar;
@end

Now my mainclass.m

#import "MainViewController.h"
#import "PashtoKeyboard.h"
#import "SearchBar.h"
@implementation MainViewController
@synthesize pashtoKeyboard,searchBar;
- (void)viewDidLoad
{
[super viewDidLoad];
//Create Pashto Keyboard
 PashtoKeyboard *pashtoKey = [[PashtoKeyboard alloc] initWithFrame:CGRectMake(0.0, 460.0-216.0, 320.0, 216.0)];
[pashtoKey loadView];
//[self.view addSubview:hebKey];
[pashtoKey addTarget:self action:@selector(pashtoKeyboard_clicked:) forControlEvents:1001];
[pashtoKey addTarget:self action:@selector(pashtoKeyboardBackspace_clicked:) forControlEvents:1002];
[pashtoKey addTarget:self action:@selector(pashtoKeyboardEnter_clicked:) forControlEvents:1003];
[self setPashtoKeyboard:pashtoKey];
//[hebKey setHidden:YES];
[pashtoKey release];
    searchBar.inputView = pashtoKey;
    searchBar.delegate=self;
    searchBar.userInteractionEnabled=YES;
   }

#pragma mark Pashto Keyboard Methods
 - (void) pashtoKeyboard_clicked:(id)sender{    
   [searchBar setText:[pashtoKeyboard keyboardText]];
   }
 - (void) pashtoKeyboardBackspace_clicked:(id)sender{   
   [searchBar setText:[pashtoKeyboard keyboardText]];
   }
 - (void) pashtoKeyboardEnter_clicked:(id)sender{   
   [searchBar setText:[pashtoKeyboard keyboardText]];
   }

In SearchBar.h

#import <UIKit/UIKit.h>
@interface SearchBar : UISearchBar {
}
@property (readwrite, retain) UIView *inputView;
@end

in SearchBar.m

#import "SearchBar.h"
@implementation SearchBar
@synthesize inputView;
- (void)dealloc {
[super dealloc];
}
@end

And then finally i have PashtoKeyboard.h and PashtoKeyboard.m where i create my custom keyboard,due to large coding i not show these classes code here i tested its with textveiw and textfield. But it not works with UISearchBar .can some one guide me how to do this.thanx


回答1:


You need to set the inputView of the UITextField that the UISearchBar is using in order to get the user input. You can do this by searching through the subviews of the search bar and finding the text field. Add this to the viewDidLoad method of your mainclass:

for (UIView *view in searchBar.subviews) {
    if ([view isKindOfClass: [UITextField class]]) {
        UITextField *textField = (UITextField *)view;
        textField.inputView = // Your custom keyboard (PashtoKeyboard)
        break;
    }
}


来源:https://stackoverflow.com/questions/12843523/customkeyboard-implemention-with-uisearchbar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!