下一个/以前的键盘工具栏iOS7

目前,我正在将键盘工具栏上的下一个/上一个按钮设置为新的,时尚的iOS 7后退按钮/转发按钮,放在导航控制器中。这是我正在尝试的。如何使用系统栏按钮项目而不是无聊的静态文本?

[self setToolbar:[[UIToolbar alloc] initWithFrame:self.frame]];
        [self.toolbar setBarStyle:UIBarStyleDefault];
        [self.toolbar setAutoresizingMask:(UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth)];
        [self addSubview:self.toolbar];

        [self setSegmentedControl:[[UISegmentedControl alloc] initWithItems:@[ NSLocalizedStringFromTable(@"Previous", @"BSKeyboardControls", @"Previous button title."),
                                                                               NSLocalizedStringFromTable(@"Next", @"BSKeyboardControls", @"Next button title.") ]]];

这是现在的样子:

这是我想要的样子:

关于如何访问这些系统项目而不实际使用图像的任何想法?我知道它的确切iOS 7后退按钮项目,我只是不知道如何在工具栏中访问它。我到处搜索过如果它有帮助,我使用BSKeyboardControls。

编辑:使它看起来像第二个图像,使用Joshua提供的图像,并将它们保存为back@2x.png和forward@2x.png到您的xcode proj中。使用Chun的代码,但请确保调用获取图像的方法:imageNamed:@“back”,而不是@“back @ 2x”。你现在有iOS 7后退按钮:)

EDIT2:要使它看起来像下一个/上一个箭头按钮,使用正确的实现方法中的以下定制:

[self.segmentedControl setWidth:50 forSegmentAtIndex:0];
[self.segmentedControl setWidth:38 forSegmentAtIndex:1];

negativeSeparator.width = -19;

EDIT3:具有< >默认情况下,所有UIWebViews都会显示箭头,当您点击文本框时,它会显示。

如果有人对一个示例项目感兴趣,请告诉我,我会上传一个链接!

EDIT4:截至2014年5月24日,BSKeyboardControls默认情况下具有此功能。

1)从:https://github.com/simonbs/BSKeyboardControls下载最新的文件

2)导入后退/下一个按钮的图像。这些可以是任何你想要的,你可以设置适当的大小,使它们看起来不错。约书亚有一个很好的一套。我有我的保存为“keyboardBack.png”和“keyboardForward.png”

3)在BSKeyboardControls.m中,更新initWithFields:fields。在这里,您可以进行一些自定义设置,例如设置背面/下一个按钮的宽度。我也删除了完成按钮,以便关注您的屏幕截图,但您可以将其添加回来。

- (id)initWithFields:(NSArray *)fields
{
    if (self = [super initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)])
    {
        // Creates toolbar
        [self setToolbar:[[UIToolbar alloc] initWithFrame:self.frame]];
        [self.toolbar setBarStyle:UIBarStyleDefault];
        [self.toolbar setAutoresizingMask:(UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth)];
        [self addSubview:self.toolbar];

        // Import images
        UIImage *backImage = [[UIImage imageNamed:@"keyboardBack"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        UIImage *forwardImage = [[UIImage imageNamed:@"keyboardForward"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

        // Create segmentedcontrol
        self.segmentedControl = [[UISegmentedControl alloc] initWithItems:@[backImage, forwardImage]];
        self.segmentedControl.tintColor = [UIColor clearColor];

        // Set button widths
        [self.segmentedControl setWidth:50 forSegmentAtIndex:0];
        [self.segmentedControl setWidth:50 forSegmentAtIndex:1];

        // Other BSKeyboardControls stuff
        [self.segmentedControl addTarget:self action:@selector(segmentedControlValueChanged:) forControlEvents:UIControlEventValueChanged];
        [self.segmentedControl setMomentary:YES];
        [self.segmentedControl setEnabled:NO forSegmentAtIndex:BSKeyboardControlsDirectionPrevious];
        [self.segmentedControl setEnabled:NO forSegmentAtIndex:BSKeyboardControlsDirectionNext];
        [self setSegmentedControlItem:[[UIBarButtonItem alloc] initWithCustomView:self.segmentedControl]];
        [self setVisibleControls:(BSKeyboardControlPreviousNext)];
        [self setFields:fields];
    }

    return self;
}

4)工具栏上的左边填充有点太多了,所以可以通过在toolbarItems中添加一个负分隔来修复它:在BSKeyboardControls.m中:

- (NSArray *)toolbarItems
{
    NSMutableArray *items = [NSMutableArray arrayWithCapacity:3];
    if (self.visibleControls & BSKeyboardControlPreviousNext)
    {
        UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                                                                           target:nil
                                                                                           action:nil];
        negativeSeperator.width = -12;

        [items addObject:negativeSeperator];
        [items addObject:self.segmentedControlItem];

    }

    if (self.visibleControls & BSKeyboardControlDone)
    {
        [items addObject:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]];
        [items addObject:self.doneButton];
    }

    return items;
}

注意:我可能没有按钮的宽度和paddings的确切的规格,但你可以调整你的喜好!

http://stackoverflow.com/questions/18969364/next-previous-keyboard-toolbar-ios7

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:下一个/以前的键盘工具栏iOS7