以编程方式修改 UIToolBar 项目

发布于 2024-12-25 07:19:59 字数 741 浏览 0 评论 0原文

我使用 Interface Builder 创建了一个工具栏。我的工具栏中有许多按钮,它们连接到各种 IBAction 方法。我想做的是,当选择一个项目时,通过改变另一个项目的色调来在视觉上使其变灰。

如何获取对 BarButtonItem 的引用?我不知道在哪里可以给每个标签一个唯一的名称,以便我可以具体引用它。

更新

我为工具栏创建了一个IBOutlet,因此我现在可以访问它。不幸的是,当我尝试设置 tintColor 时,它崩溃了。这是我的代码:

UIBarButtonItem *penButton = [_toolBar.items objectAtIndex:3];
UIBarButtonItem *crossButton = [_toolBar.items objectAtIndex:4];

penButton.tintColor = [UIColor darkGrayColor];
crossButton.tintColor = [UIColor whiteColor];

抛出的错误:

由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[UIBarButtonItem setTintColor:]: 无法识别的选择器发送到实例 0x631df50'

I have created a toolbar using Interface Builder. I have a number of buttons in the toolbar that are hooked up to various IBAction methods. What I want to do is, when selecting one item, visually grey out another by changing it's tint.

How can I get a reference to the BarButtonItem? I can't see where I can give each label a unique name where so that I can reference it specifically.

Update

I created an IBOutlet for the tool bar so i now have acces to it. Unfortunately when I try to set the tintColor it crashes. Here is my code:

UIBarButtonItem *penButton = [_toolBar.items objectAtIndex:3];
UIBarButtonItem *crossButton = [_toolBar.items objectAtIndex:4];

penButton.tintColor = [UIColor darkGrayColor];
crossButton.tintColor = [UIColor whiteColor];

The error thrown:

Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[UIBarButtonItem
setTintColor:]: unrecognized selector sent to instance 0x631df50'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妥活 2025-01-01 07:19:59

试试这个:

NSArray *items = [myUIToolbar items];
for (UIBarButtonItem *barButton in items) {
   //do something with button
}

Try this:

NSArray *items = [myUIToolbar items];
for (UIBarButtonItem *barButton in items) {
   //do something with button
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文