Sorumu burada: Without subclassing a UIView or UIViewController: possible to catch if a subview was added?MonoTouch'a "method_getImplementation" ve "method_setImplementation" nasıl bağlanır?
Yanıtın kodundan MonoTouch'a nasıl yönlendirileceğini merak ediyorum. Temel olarak yeni bir yöntemle bir yöntemi değiştirir ve alt sınıfı olmadan eski olanı çağırır. MonoTouch'da çalışmak için hokkabazlık eden bu işaretçiyi almak mümkün mü?
//Makes views announce their change of superviews
Method method = class_getInstanceMethod([UIView class], @selector(willMoveToSuperview:));
IMP originalImp = method_getImplementation(method);
void (^block)(id, UIView*) = ^(id _self, UIView* superview) {
[_self willChangeValueForKey:@"superview"];
originalImp(_self, @selector(willMoveToSuperview:), superview);
[_self didChangeValueForKey:@"superview"];
};
IMP newImp = imp_implementationWithBlock((__bridge void*)block);
method_setImplementation(method, newImp);
Ayrıca nasıl yapılabileceğini merak ediyorum. Şu anda sadece bunu yapan bir ObjC lib aleyhine bağ kuruyorum. –