Скажем, у меня есть этот код:Как сделать кнопку перехвата надписью для перехвата событий?
#import <UIKit/UIKit.h>
@interface MyView : UIView
@end
@implementation MyView
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
// How can I get this to show up even when the button is touched?
NSLog(@"%@", [touches anyObject]);
}
@end
@interface TestViewAppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
}
@end
@implementation TestViewAppDelegate
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyView *view = [[MyView alloc] initWithFrame:[window frame]];
[view setBackgroundColor:[UIColor whiteColor]];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Hiya!" forState:UIControlStateNormal];
[button setFrame:CGRectMake(100.0, 100.0, 200.0, 200.0)];
[view addSubview:button];
[window addSubview:view];
[window makeKeyAndVisible];
}
- (void)dealloc
{
[window release];
[super dealloc];
}
@end
Есть ли способ, чтобы перехватить события прикосновения получать отправляемые на кнопку? В конечном итоге я хотел бы сделать подкласс UIView, который будет сообщать контроллеру своего представления (или делегировать, в зависимости от того, что произойдет), когда он обнаружит салфетки, чтобы он мог «нажать» следующий контроллер представления в стек (подобно домашнему экрану iPhone). Я решил, что это был первый шаг, но я открыт для предложений, если я приближаюсь к этому неправильно.
Вы не имеете в виду возвращение [superview hitTest: point withEvent: event]; –
'super' прав, потому что вы хотите вызвать метод родительского класса классов,' superiew' пропустит это. – keegan3d