我对目标 C 编程或多或少是新手,所以这听起来可能有点奇怪..
我正在尝试从 UIViewController 以编程方式设置许多 UITextFields 的委托,该 UIViewController 是包含 UITextfields 的实际 UIViewController 的父级。基本上它与右键单击 UITextField 并将 UIViewController 设置为此控件的委托相同。
我试图循环 self.view.subview 数组,但我只得到 2 个 UIImageViews (我仍在试图理解这一点......我认为是关于使用静态单元格但我很困惑)。所以下一个选项是遍历类的所有属性。
使用stackoverflow的混合代码我几乎完成了,但我仍然需要将消息发送到文本字段本身。
unsigned int count = 0;
objc_property_t *properties = class_copyPropertyList( [self class], &count );
for( unsigned int i = 0; i < count; i++ ) {
objc_property_t property = properties[i];
const char* propertyName = property_getName(property);
NSLog( @"property: %s", propertyName ); //this is actually correctly writing the name of the properties
objc_msgSend((id)GetTheObjectThroughTheName, @selector(setDelegate:), self);
}
问题是我不知道如何仅使用属性名称来获取与该属性相关的对象......但是如果我可以获取它并使用 objc_msgsend 使用该对象作为接收器,它将得到解决。
有什么想法吗?
提前致谢