1

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;
} 
4

4 に答える 4

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

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

それが役に立てば幸い。

于 2013-06-17T10:47:41.770 に答える
2

textfied の代わりに、テキスト フィールドの背景 uiimage ビューで button を使用できます。

于 2013-06-17T11:43:02.260 に答える
1

このコードを試してください:

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

                        return NO;
                   }
                  else
                  {
                      return YES;
                   }

          }
于 2013-06-17T10:46:36.077 に答える
-1

テキストフィールドを読み取り専用プロパティにする

于 2013-06-17T11:51:32.690 に答える