5

これが私の非常に基本的なコードです。UICollectionView に 5 つのセルが表示されます (各セルには単純なボタンが含まれています)。すべてのボタンは、単一の IBAction メソッドを指しています。これはすべて Main.storyboard 内でセットアップされます。

ただし、tvOSにボタンのフォーカスを取得させることはできません。理由はありますか?

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return 5;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];
    return cell;
}

- (IBAction)buttonAction
{
    // do stuff
}

@end

ここに画像の説明を入力

4

2 に答える 2

12

デフォルトでは、UICollectionViewCell はフォーカス可能であり、サブビューの代わりにフォーカスを取得しますが、フォーカスをpreferredFocusedView取得するビューをオーバーライドして返すことで、この機能をオーバーライドできます。

- (UIView *)preferredFocusedView
{
    return _button;
}

初期フォーカスと優先フォーカス チェーンの詳細を読む

于 2015-09-14T07:11:09.530 に答える