2013-06-17 3 views
1

Я хочу показать сборщик, когда я нажимаю внутри UITextField. Это мой код (который работает):UIPicker в UITextField

[super viewDidLoad]; 
// Picker View dei Tipi 
pickerTipo= [[UIPickerView alloc] init]; 
pickerTipo.showsSelectionIndicator = YES; 
UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init]; 

[keyboardDoneButtonView sizeToFit]; 
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] 
           initWithTitle: 
           @"Fine" style:UIBarButtonItemStyleBordered 
           target:self 
           action:@selector(pickerDoneClicked:)]; 

[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]]; 

self.textTipo.inputAccessoryView = keyboardDoneButtonView; 
[self.textTipo resignFirstResponder]; 
self.textTipo.inputView = pickerTipo; 
self.textTipo.delegate = self; 

Правильный выборщик и аксессуар. Проблема в том, что UITextField все еще доступен для редактирования, то есть я все еще могу печатать внутри UITextField. Я хотел бы, чтобы при выборе сборщика внутри UITextField не было разрешено редактирование.

[решаемые} После принятого ответа, правильный код:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
if (textField == self.textTipo || textField == self.textStato) 
    return NO; 
else 
    return YES; 
} 

ответ

3
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if([textField.restorationIdentifier isEqualToString:@"textFieldIdentifier"]) 
    { 
     return NO; 
    } 
} 

Надеется, что это помогает.

+0

Это право. Я также вернул бы YES или NOT, w.r.t в textField, который привязан к сборщику. – giuseppe

1

попробуйте этот код:

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 
     { 
       if(textField==self.textTipo) 
        { 

         return NO; 
        } 
        else 
        { 
         return YES; 
        } 

      } 
2

Вместо textfied вы можете использовать кнопку с фоном uiimage просмотра текстового поля.

-1

Сделайте свое текстовое поле недвижимым имуществом

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/faq#reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/privileges/comment). –

+0

Это помогло мне, поэтому я предложил это в противном случае Андерс Р. Быструп, и предлагаю ответ, я также соглашусь с тем, что если это поможет – Baddu

Смежные вопросы