将Xcode 6与iOS 8 SDK配合使用,支持的最低版本为iOS 7.
此代码不适用于iPhone 5s 8.0,iPhone 6,iPhone 6 Plus,但它适用于iPhone 5 8.0和iPhone 4s 8.0。
它有一个文本字段。文本字段有一个inputView和inputAccessoryView,用一个按钮显示日期选择器和工具栏。
我只是做了足够的证明这个问题。在那些较高模型的模拟器上,只显示工具栏,而不是选择器。
这是模拟器中的错误还是iOS 8中的更改仍然有效?
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 43, 320, 480)];
pickerView.delegate = self;
pickerView.dataSource = self;
[pickerView setShowsSelectionIndicator:YES];
pickerView.backgroundColor = [UIColor whiteColor];
_textField.inputView = pickerView ;
_textField.delegate = self;
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)];
toolbar.barStyle = UIBarStyleBlackOpaque;
[toolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:nil];
[barItems addObject:doneBtn];
[toolbar setItems:barItems animated:YES];
_textField.inputAccessoryView = toolbar;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return 3;
}
@end
答案 0 :(得分:4)
检查iOS模拟器的硬件键盘状态。在iOS模拟器菜单栏中,转到硬件>键盘并取消选中连接硬件键盘选项。
答案 1 :(得分:0)
每当您有一个焦点的文本字段并且没有出现键盘时,请尝试使用物理键盘命令+ k或硬件>键盘>当模拟器是焦点窗口时,从Mac上方的栏中切换软件键盘。
答案 2 :(得分:0)
您可以将工具栏样式更改为默认值并进行检查。它对我有用。