0

我正在尝试在我的 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];

}

我尝试添加其他工具栏项,它们都可以工作。例如,以下代码可以正常工作。

- (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 上。有人知道发生了什么吗?谢谢!

4

1 回答 1

2

borderStyle属性默认UITextField设置为UITextBorderStyleNone。这可能是它看起来不可见的原因。尝试这个:

urlField.borderStyle = UITextBorderStyleRoundedRect;

另一方面,当我的视图没有按预期显示时,我通常会尝试显示它的边框以帮助我确定它是否真的在屏幕上。

view.layer.borderWidth = 1.0f;
view.layer.borderColor = [[UIColor magentaColor] CGColor];
于 2013-10-03T03:51:49.010 回答