【问题标题】:How do I create a keyboard accessory view with Auto Layout in Interface Builder?如何在 Interface Builder 中使用自动布局创建键盘附件视图?
【发布时间】:2015-02-18 19:15:37
【问题描述】:

我想将“完成”按钮和分段控件添加到小数点键盘。理想情况下,我想在 Interface Builder 中使用 Auto Layout 布局键盘附件视图。

这甚至可能吗?我是创建一个新的 XIB 还是可以在现有的 Storyboard 场景中以某种方式进行?如何将附件视图附加到相应的文本字段?

【问题讨论】:

    标签: ios autolayout uistoryboard inputaccessoryview


    【解决方案1】:

    您介意以编程方式进行吗?

    通常,您将 UIToolbar 与您的项目一起带到 UITextField,但您可能需要子视图 UISegmentedControl;

    UIToolbar *keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)];
    
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithFrame:...
    // Customize segmentedControl's properties here.
    
    UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneButtonPressed)];
    
    [keyboardToolbar setItems:[NSArray arrayWithObjects:flexibleSpace, doneButton, nil]];
    [keyboardToolbar addSubview:segmentedControl];
    [textField setInputAccessoryView:keyboardToolbar];
    

    编辑:最初可以在 IB 中创建工具栏,但您必须将其拖出视图并拖到包含场景的左侧边栏并将其链接到参考插座,然后将其分配给 setInputAccessoryView in你的viewDidLoad

    【讨论】:

    • 它只是曾经使用 UIToolBar 完成的吗?那是我想念的吗?我在文档中找到的任何地方都没有暗示这种情况。如果可能的话,我想在 IB 中做这件事,因此问题的措辞。
    • 这可能不是唯一的方法,因为您可以将任何 UIView 分配给它。不过,我遇到的问题是,附件视图的框架似乎固定为 UINavigationBar/UIToolbar 的形状,为什么我在尝试此操作时建议使用 UIToolbar,但我可能不得不稍后再做一次来测试一下。至于IB,我自己也没找到,但觉得这个解决方案可能还是有点用处的。
    • 这么简单...我希望我能再给你一个 +1
    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 2015-03-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多