Not the most performant solution, but very quick and dirty-ish.
NSBezierPath *path = [NSBezierPath bezierPathWithRect:r2];
[path transformUsingAffineTransform:t];
if([path containsPoint:NSMinX(r1)]
&& [path containsPoint:NSMinY(r1)]
&& [path containsPoint:NSMaxX(r1)]
&& [path containsPoint:(NSMaxY(r1)] ){
self.validTransform = transform;
}