Search code examples
objective-ctvosapple-tv

tvOS how to recognize remote gestures for Objective C?


How would I go about recognizing remote swipes and button taps with Objective C for tvOS? Everywhere I find comes up with Swift, which I'm not used to yet.

Thanks!


Solution

  • The Swift code from your example:

    let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:"))
    swipeDown.direction = .Down
    view.addGestureRecognizer(swipeDown)
    
    func swipedDown(sender:UISwipeGestureRecognizer){
        NSLog("It worked")
    }
    

    Swift 5:

    let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:"))
    swipeDown.direction = .down
    view.addGestureRecognizer(swipeDown)
    
    func swipedDown(sender:UISwipeGestureRecognizer){
        NSLog("It worked")
    }
    

    Translating to Objective C:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDown:)];
        recognizer.direction = UISwipeGestureRecognizerDirectionDown;
        [self.view addGestureRecognizer:recognizer];
    }
    
    - (void)swipeDown:(UISwipeGestureRecognizer *)sender
    {
        NSLog(@"It works");
    }
    

    Which seems to work:

    enter image description here