3

inputAccessoryView在 , 或 上UITextField添加UITextView一个非常容易UISearchBarUIView但是,据我所知,没有明显且简单的方法可以为您的基础添加一个!

我有一个UIView遵循UIKeyInput协议的子类。它接收键盘输入来做与输入文本无关的事情,所以我宁愿不强制它对以前指定的视图进行子类化,因为它会增加臃肿并且会暴露一堆不做任何事情的属性,而且我需要解决这些类本身出现的文本条目(更多膨胀)。

但是,我UIView确实需要其提供的键盘上的输入附件视图才能正常工作。

有什么简单的方法可以解决这个问题吗?UIKeyboardWillShowNotification我是否必须在我的子类中注册为观察者UIView并手动添加一个子视图作为附件视图?

4

1 回答 1

9

您是否尝试简单地将 inputAccessoryView 方法添加到您的 viewController?我相信它会在显示键盘时被调用,因此您实际上不必为每个 textField 或视图分配一个。

- (UIView *)inputAccessoryView
{
    if (!inputAccessoryView)
    {
        CGRect accessFrame = CGRectMake(0.0, 0.0, 768.0, 77.0);
        inputAccessoryView = [[UIView alloc] initWithFrame:accessFrame];
        inputAccessoryView.backgroundColor = [UIColor blueColor];
        UIButton *compButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        compButton.frame = CGRectMake(313.0, 20.0, 158.0, 37.0);
        [compButton setTitle: @"Word Completions" forState:UIControlStateNormal];
        [compButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [compButton addTarget:self action:@selector(completeCurrentWord:) forControlEvents:UIControlEventTouchUpInside];
        [inputAccessoryView addSubview:compButton];
    }
    return inputAccessoryView;
}
于 2013-12-05T22:31:59.823 回答