将UITextField添加到UIToolbar不起作用

时间:2013-09-14 14:39:15

标签: ios uitextfield uitoolbar uitoolbaritem

我正在尝试在UINavigationView上向UIToolbar添加UITextField,但它不会出现在工具栏上。代码很简单。这是它的样子:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationController.toolbarHidden = NO;
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 32)];
    UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:textField];
    self.toolbarItems = [NSArray arrayWithObjects: textFieldItem, nil];

}

我尝试添加其他toolbarItems,它们都有效。例如,以下代码没有问题。

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationController.toolbarHidden = NO;
    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(openCamera:)];
    self.toolbarItems = [NSArray arrayWithObjects: buttonItem, nil];

}

- (void)openCamera:(NSString *)str
{
   // some code..
}

这是我对默认生成的单一视图应用程序所做的唯一更改,我不知道它为什么不起作用。顺便说一句,我在iOS7上。任何人都知道发生了什么事?谢谢!

1 个答案:

答案 0 :(得分:2)

borderStyle的{​​{1}}属性默认设置为UITextField。这可能就是它看起来不可见的原因。试试这个:

UITextBorderStyleNone

另一方面,当我的视图没有按预期显示时,我通常会尝试显示其边框,以帮助我弄清楚它是否实际出现在屏幕上。

urlField.borderStyle = UITextBorderStyleRoundedRect;