Это работает ....! Спасибо...!
ла проверьте 3 скриншота.
Снимок экрана 1: Тема представляет собой поле UITextview. Когда я нажимаю на текстовое поле темы, нормальная клавиатура придет. Здесь сейчас нет проблем.
Снимок экрана 2: Приоритет - вид поля UIText. Здесь я использую UIActionsheet Picker view. Когда я нажму на Приоритет, текстовое поле появится, как показано на скриншоте. Это тоже работает нормально.
Моя проблема : Когда я нажимаю Приоритетное текстовое поле непосредственно из Тематического текстового обзора, прокручивая без использования кнопки «Готово» или следующей кнопки на клавиатуре. Тогда следующий вопрос прибывает.
или когда я перемещаю UITextview в любое другое текстовое поле, как в текстовом поле справки или текстовом поле источника (в этом текстовом поле используется UIActionsheet.), возникает та же проблема.
Смотрите скриншот № 3.
здесь, клавиатура и UIActionsheet оба появляются. Здесь клавиатура не прячется, она все еще появляется. Это не будет появляться здесь, когда я переместлю здесь UITextView к следующему текстовому полю, т.е. в сборщике UIActionsheet, он покажет только Picker VIew.
В чем проблема, я не понимаю. Кто-нибудь, пожалуйста, скажите мне решение для этого.
Вот код для этого,
@interface EditDetailTableViewController ()
{
NSNumber *help_topic_id;
NSNumber *priority_id;
NSMutableArray * pri_idArray;
NSMutableArray * helpTopic_idArray;
}
- (void)helpTopicWasSelected:(NSNumber *)selectedIndex element:(id)element;
- (void)priorityWasSelected:(NSNumber *)selectedIndex element:(id)element
- (void)actionPickerCancelled:(id)sender;
@end
@implementation EditDetailTableViewController
- (void)viewDidLoad {
[super viewDidLoad];
help_topic_id=[[NSNumber alloc]init];
priority_id=[[NSNumber alloc]init];
}
-(void)removeKeyBoard
{
[self.subjectTextView resignFirstResponder];
}
- (IBAction)priorityClicked:(id)sender {
[_priorityTextField resignFirstResponder];
if (!_priorityArray||![_priorityArray count]) {
_priorityTextField.text=NSLocalizedString(@"Not Available",nil);
priority_id=0;
}else{
[ActionSheetStringPicker showPickerWithTitle:@"Select Priority" rows:_priorityArray initialSelection:0 target:self successAction:@selector(priorityWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:sender];
}
}
- (IBAction)helpTopicClicked:(id)sender {
[_helpTopicTextField resignFirstResponder];
if (!_helptopicsArray||!_helptopicsArray.count) {
_helpTopicTextField.text=NSLocalizedString(@"Not Available",nil);
help_topic_id=0;
}else{
[ActionSheetStringPicker showPickerWithTitle:@"Select Helptopic" rows:_helptopicsArray initialSelection:0 target:self successAction:@selector(helpTopicWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:sender];
}
}
- (void)priorityWasSelected:(NSNumber *)selectedIndex element:(id)element {
priority_id=(pri_idArray)[(NSUInteger) [selectedIndex intValue]];
//self.selectedIndex = [selectedIndex intValue];
//may have originated from textField or barButtonItem, use an IBOutlet instead of element
self.priorityTextField.text = (_priorityArray)[(NSUInteger) [selectedIndex intValue]];
}
- (void)helpTopicWasSelected:(NSNumber *)selectedIndex element:(id)element {
help_topic_id=(helpTopic_idArray)[(NSUInteger) [selectedIndex intValue]];
// self.selectedIndex = [selectedIndex intValue];
//may have originated from textField or barButtonItem, use an IBOutlet instead of element
self.helpTopicTextField.text = (_helptopicsArray)[(NSUInteger) [selectedIndex intValue]];
}
#pragma mark - UITextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if (textField.tag==1) {
[_priorityTextField resignFirstResponder];
_priorityTextField.tintColor = [UIColor clearColor];
if (!_priorityArray||![_priorityArray count]) {
_priorityTextField.text=NSLocalizedString(@"Not Available",nil);
priority_id=0;
}else{
[ActionSheetStringPicker showPickerWithTitle:@"Select Priority" rows:_priorityArray initialSelection:0 target:self successAction:@selector(priorityWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:self.view];
}
// return NO;
}else if(textField.tag==2){
//[_subjectTextField resignFirstResponder];
[_helpTopicTextField resignFirstResponder];
_helpTopicTextField.tintColor = [UIColor clearColor];
if (!_helptopicsArray||!_helptopicsArray.count) {
_helpTopicTextField.text=NSLocalizedString(@"Not Available",nil);
help_topic_id=0;
}else{
[ActionSheetStringPicker showPickerWithTitle:@"Select Helptopic" rows:_helptopicsArray initialSelection:0 target:self successAction:@selector(helpTopicWasSelected:element:) cancelAction:@selector(actionPickerCancelled:) origin:self.view];
}
// return NO;
}else{
}
// return YES;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
//[textView resignFirstResponder];
if(textView == _subjectTextView)
{
if([text isEqualToString:@" "])
{
if(!textView.text.length)
{
return NO;
}
}
if([textView.text stringByReplacingCharactersInRange:range withString:text].length < textView.text.length)
{
return YES;
}
if([textView.text stringByReplacingCharactersInRange:range withString:text].length >100)
{
return NO;
}
NSCharacterSet *set=[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 "];
if([text rangeOfCharacterFromSet:set].location == NSNotFound)
{
return NO;
}
}
return YES;
}
@end