【问题标题】:iOS: Toolbar above keyboardiOS:键盘上方的工具栏
【发布时间】:2013-12-17 01:39:24
【问题描述】:

我有一个 UIToolBar 和一个 TextBox。当我选择文本框时,键盘出现,工具栏消失(因为键盘在工具栏的前面)。 我想做facebook的状态更新,当你选择文本框时,工具栏在键盘上方:

我该怎么做?

【问题讨论】:

    标签: ios objective-c facebook uitoolbar


    【解决方案1】:

    文本字段具有称为inputAccessoryView 的属性,它允许您将任何视图放在键盘顶部。看来你的情况很简单,不然的话,如果你不能使用附件视图,你可以看看几十个实现here

    【讨论】:

    • 要使用 inputAccessoryView 我必须动态创建工具栏?
    • 好吧,你可以在 xib 中构建你的工具栏,然后在代码中连接它,因为我认为 IB 没有附件视图的出口。
    • 我连接了工具栏,然后这样做了: - (void)textViewDidBeginEditing:(UITextView *)textView { [textView setInputAccessoryView:_toolBar]; } 但仍然无法正常工作
    • 确保你的 _toolBar 不是 nil,你甚至可以在 viewDidLoad 中设置它。看看ankushasthana.blogspot.com/2013/04/… 以获得视觉线索
    【解决方案2】:

    首先创建一个UIToolbar,其中包含您想要的按钮等...

    那么你需要做的就是打开

     - (void)textViewDidBeginEditing:(UITextView *)textView
    {
        toolBar *tb = [[myToolbar alloc] init]
        [textView setInputAccessoryView:tb];
    }
    

    if Not try this using IB Maybe(未测试)

    myToolbarClass* myToolbar = [[[NSBundle mainBundle] 
    loadNibNamed:@"toolbarNib" owner:self options:nil] objectAtIndex:0]
    [textView setInputAccessoryView:myToolbar];
    

    【讨论】:

    • toolBar *tb = [[myToolbar alloc] init] 不明白。我试过: (void)textViewDidBeginEditing:(UITextView *)textView { [textView setInputAccessoryView:_toolBar]; } 但仍然无法正常工作
    • 对不起是一个非常糟糕的解释。 myToolbar 是子类化 UIToolbar 的一个示例。在子类中构建您的工具栏,然后使用上面的一个实例。 Dmitry 也是正确的,您可以在 viewDidLoad 中创建 UIToolbar;将 UIBarButtonItems 添加到它,然后只需 setInputAccessoryView 到工具栏。
    • 对不起,Tomskiis,我真的是 iOS 新手。我已经使用 IB 创建了工具栏并将其连接到我的班级。那么,我必须以编程方式创建工具栏吗?
    • 如果你的 IB 连接到一个类,你应该能够像上面那样创建它的一个实例。我并没有真正使用 nib 文件来处理这样的事情,但如果它不起作用,也许你需要在 UIToolbar 类中调用 awakeFromNib 方法?
    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2016-12-20
    • 2012-03-24
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多