带有inputView的UITextField在某些iOS 8模拟器中不起作用

时间:2014-09-19 21:45:26

标签: objective-c uitextfield ios8 xcode6 inputview

将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

3 个答案:

答案 0 :(得分:4)

检查iOS模拟器的硬件键盘状态。在iOS模拟器菜单栏中,转到硬件>键盘并取消选中连接硬件键盘选项。

答案 1 :(得分:0)

每当您有一个焦点的文本字段并且没有出现键盘时,请尝试使用物理键盘命令+ k或硬件>键盘>当模拟器是焦点窗口时,从Mac上方的栏中切换软件键盘。

答案 2 :(得分:0)

您可以将工具栏样式更改为默认值并进行检查。它对我有用。