gpt4 book ai didi

iphone - 以编程方式引用使用 Interface Builder 设置的对象

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:08 24 4
gpt4 key购买 nike

我已经设置了几个 View ,每个 View 都包含一个 UIPickerView,每个 View 都包含一个 UIToolbar,每个 View 又都有一个 UIBarButtonItem。这一切都在IB中设置。我在代码中有指向 UIPickerViews 的指针。我需要将 UIBarButtonItems 引用为函数的一部分,该函数的行为取决于它处理的是哪个 UIPickerView。我将 (id) 发件人作为此函数的参数。发件人始终是 UIBarButtonItems 之一。我试图找到这个特定的 UIBarButtonItem 属于哪个 UIPickerView。我假设我必须启动 UIPickerView 层次结构并向下工作到 UIBarButtonItem。我认为这是正确的方法,因为我无法进行简单的比较,因为我没有明确引用 UIBarButtonItem 对象,因为它是在 IB 中设置的。此外,因为 subview 没有指向其父 View 的指针,所以我无法按照自己的方式返回层次结构。正确的?如果我在这一点上的想法是正确的,我是否:遍历每个 UIPickerView 中的 View 层次结构,找到一个 UIToolBar,然后找到一个 UIBarButtonItem?我到底在 UIToolBar 级别和 UIBarButtonItem 级别检查什么 - 我的意思是我是否执行 if 语句检查以查看对象分别是 UIToolBar 还是 UIBarButtonItem 类型?如何在 if 语句中找到对象的类型?

一个相关但更普遍的问题是,我是否应该在代码中设置这整个事情,以便我可以明确引用 UIBarButtonItem,我可以首先将 (id)sender 与它进行比较?

最佳答案

要弄清楚是哪一个,您需要做两件事:

一个。在代码中,添加 IBOutlet <object-type> <var-name>@interface .例如,如果你有一个用于“暂停”的 UIButton,你可以这样做

@interface blabla {
...
IBOutlet UIButton btnPause;
}

两个。在 Interface Builder 中,按住 ctrl 从“File's Owner”拖动到按钮并选择“btnPause”。

在得到(id)sender的地方,然后你可以做例如

if (sender == btnPause) { ... }

关于iphone - 以编程方式引用使用 Interface Builder 设置的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com