【问题标题】:inputAccessoryView on UIViewUIView 上的 inputAccessoryView
【发布时间】:2013-12-23 02:26:43
【问题描述】:

UITextFieldUITextViewUISearchBar 上添加inputAccessoryView 非常简单。但是,据我所知,没有明显且简单的方法可以为您的基本 UIView 添加一个!

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

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

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

【问题讨论】:

    标签: ios iphone objective-c uiview inputaccessoryview


    【解决方案1】:

    您是否尝试简单地将 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;
    }
    

    【讨论】:

    • 绝对让我走上正确的道路。没想到inputAccessoryView是UIResponder的方法!因此,如果被覆盖,任何视图或视图控制器都可以使用它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多