自定义输入视图控制器

Posted

技术标签:

【中文标题】自定义输入视图控制器【英文标题】:Custom input view controller 【发布时间】:2015-11-26 13:23:17 【问题描述】:

是否可以在 ios 9 上使用 UIInputViewController 子类作为输入视图?我尝试设置 inputViewController 属性,但是当我的文本字段成为第一响应者时,没有显示自定义视图控制器。

@interface InputViewController : UIInputViewController

@end

@implementation InputViewController

- (void)viewDidLoad 
    [super viewDidLoad];

    UIDatePicker *datePicker = [[UIDatePicker alloc] init];
    datePicker.translatesAutoresizingMaskIntoConstraints = NO;

    [self.inputView addSubview:datePicker];

    [datePicker.leadingAnchor constraintEqualToAnchor:self.inputView.leadingAnchor].active = YES;
    [datePicker.trailingAnchor constraintEqualToAnchor:self.inputView.trailingAnchor].active = YES;
    [datePicker.topAnchor constraintEqualToAnchor:self.inputView.topAnchor].active = YES;
    [datePicker.bottomAnchor constraintEqualToAnchor:self.inputView.bottomAnchor].active = YES;


@end

@interface TextField: UITextField

@property (nonatomic, readwrite, strong) UIInputViewController *inputViewController;

@end

@implementation TextField
@end

@implementation ViewController

- (void)viewDidLoad 
    [super viewDidLoad];

    self.textField.inputViewController = [[InputViewController alloc] init];


@end

【问题讨论】:

【参考方案1】:

原来缺少的部分是:

self.view.translatesAutoresizingMaskIntoConstraints = NO;

非常令人沮丧的是UIInputViewController 不会自动执行此操作。

【讨论】:

以上是关于自定义输入视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

UI基本控件和自定义视图

使用单独的控制器将自定义单元格中的标签设置为数组中的名称

关闭自定义模式视图控制器

实现复杂的自定义视图控制器的正确方法是啥

将自定义单元格从一个视图控制器传递到另一个视图控制器

呈现子视图控制器的自定义容器视图控制器子项