将 UITextField 添加到 UIToolbar 不起作用
Posted
技术标签:
【中文标题】将 UITextField 添加到 UIToolbar 不起作用【英文标题】:Adding UITextField to UIToolbar does not work 【发布时间】:2013-09-14 14:39:15 【问题描述】:我试图在我的 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 上。有人知道发生了什么吗?谢谢!
【问题讨论】:
代码看起来没问题,尝试在 iOS 6 上运行以确保并考虑提出错误报告。同时添加一些其他按钮项,看看它们是如何布局的。 我试过在iOS6.1模拟器上运行,还是不行。我想这毕竟不是iOS版本的问题。此外,当我同时添加它们时,只会显示其余的工具栏项。 textField 没有。 【参考方案1】:UITextField
的borderStyle
属性默认设置为UITextBorderStyleNone
。这可能是它看起来不可见的原因。试试这个:
urlField.borderStyle = UITextBorderStyleRoundedRect;
另一方面,当我的视图没有按预期显示时,我通常会尝试显示它的边框以帮助我确定它是否真的在屏幕上。
view.layer.borderWidth = 1.0f;
view.layer.borderColor = [[UIColor magentaColor] CGColor];
【讨论】:
以上是关于将 UITextField 添加到 UIToolbar 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将 UITextField 添加到 UIToolbar 不起作用