0

私のピッカー ビューには、ユーザーが新しい値を入力できるように UIAlertView をポップアップする「カスタム」オプションがあります。値は、将来の参照用にピッカーの plist ソースに保存されます。xxxEditingDidBegin が繰り返し呼び出されています (終了することはありません)。

UIAlertView がピッカーを閉じているためだと思います。

これをどのように行うべきでしたか?

- (IBAction)serviceTypeFieldEditingDidEnd:(UITextField *)sender 
{
    UIPickerView *picker = [sender.inputView.subviews objectAtIndex:0];
    NSString *selText = [serviceTypeArray objectAtIndex: [picker selectedRowInComponent:0]];
    sender.text = selText;

    if (NSOrderedSame==[selText compare:@"Custom"])
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Custom Role" 
                                                            message:@"Enter Role Title" 
                                                           delegate:self 
                                                  cancelButtonTitle:@"Cancel" 
                                                  otherButtonTitles:@"Ok", nil];
        alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
        [alertView show]; 
    }
}
4

2 に答える 2

0

このように修正しました

- (void)pickerView:(UIPickerView *)pickerView  didSelectRow:(NSInteger)row 
                                                inComponent:(NSInteger)component 
{
    NSString *rowString = [serviceTypeArray objectAtIndex:row];

    if ([rowString compare:@"Custom"] == NSOrderedSame)
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Custom Role" 
                                                            message:@"Enter Role Title" 
                                                           delegate:self 
                                                  cancelButtonTitle:@"Cancel" 
                                                  otherButtonTitles:@"Ok", nil];
        alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
        [alertView show]; 
    }
    else 
    {
        _serviceType.text = rowString;
    }
}
于 2012-08-31T10:48:56.377 に答える
0

のようなメソッドを実装する

- (IBAction)doSelectDate:(UIDatePicker *)sender 
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Hi" message:@"AlertView is shwoing" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
} 

上記のメソッドを UIPickerView の ValueChanged イベントに接続します。

于 2012-08-28T10:28:20.990 に答える