2010-04-16 1 views
0

Я создал представление Picker в объективе C и заполнил его NSArray, и все работает отлично, оно компилируется и отображается на экране, но сборщик ничего не делает. Я бы хотел, чтобы пользователь потянулся пальцем, как и следовало ожидать, но он никак не реагирует.Отображение и заполнение представления подборщика правильно, но не интерактивно

'lil Help?

Код, который я использовал для сборщика, получен от «Начало разработки iPhone», но у меня есть больше видов (вид карты и вид, который я использую для рисования) на экране, для ясности я могу просто сбросить весь код здесь Я ограничу это тем, что, по моему мнению, имеет значение.

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


@interface SingleComponentPickerViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> { 
    IBOutlet UIPickerView *singlePicker; 
       NSArray *pickerData; 
} 
@property (nonatomic, retain) UIPickerView *singlePicker; 
@property (nonatomic, retain) NSArray *pickerData; 
- (IBAction)buttonPressed:(id)sender; 
@end 


// SingleComponentPickerViewController.m 

#import "SingleComponentPickerViewController.h" 

@implementation SingleComponentPickerViewController 
@synthesize singlePicker; 
@synthesize pickerData; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Initialization code 
    } 
    return self; 
} 
- (IBAction)buttonPressed:(id)sender 
{ 
    NSInteger row = [singlePicker selectedRowInComponent:0]; 
    NSString *selected = [pickerData objectAtIndex:row]; 
    NSString *title = [[NSString alloc] initWithFormat:@"You selected %@!", selected]; 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:@"Thank you for choosing." delegate:nil cancelButtonTitle:@"You're Welcome" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
    [title release]; 
} 
- (void)viewDidLoad { 
    NSArray *array = [[NSArray alloc] initWithObjects:@"Luke", @"Leia", @"Han", @"Chewbacca", @"Artoo", @"Threepio", @"Lando", nil]; 
    self.pickerData = array; 
    [array release]; 

} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview 
    // Release anything that's not essential, such as cached data 
} 

- (void)dealloc { 
    [singlePicker release]; 
    [pickerData release]; 
    [super dealloc]; 
} 
#pragma mark - 
#pragma mark Picker Data Source Methods 
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 1; 
} 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return [pickerData count]; 
} 
#pragma mark Picker Delegate Methods 
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    return [pickerData objectAtIndex:row]; 
} 
@end 

Вот код, но у меня есть ощущение, что проблема больше с тем, как мнения размещены/взаимодействия.

+0

Код? Видя, как вы его создавали, кто-нибудь поможет вам. –

ответ

0

Установить для свойства useractionEnabled значение true (в IB или коде)? Это должно быть значение по умолчанию.

Но, как упоминалось выше, в комментариях ... какой-то код может быть полезен :)

+0

Спасибо, но useractionEnabled уже установлен в true. –