UISegmentedControl
それぞれ異なる「タイトル」を持ついくつかのセグメントがあります。NSString
を読み込んで、その文字列と一致するタイトルのセグメントをプログラムで選択できるようにしたいと考えています。次のようなものから始めるとします。
NSString *stringToMatch = @"foo";
UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"foo",@"bar",@"baz", nil]];
私は次のようなことをしたい:
[seg selectSegmentWithTitle:stringToMatch];
しかし、 というメソッドがないためselectSegmentWithTitle
、これは機能しません。これに似た方法を知っている人はいますか?
次のように、 のすべてのタイトルをループすることも考えましたseg
。
int i = 0;
for (UISegment *thisSeg in [seg allSegmentsInOrder])
{
if ([thisSeg.title isEqualToString:stringToMatch])
{
[seg setSelectedSegmentIndex:i];
break;
}
i++;
}
しかし、私の知る限り、 のようなものはなくUISegment
、方法もありませんallSegmentsInOrder
。繰り返しますが、これを機能させるために私が加えることができる変更を知っている人はいますか?
第 3 に、おそらく UISegmentedControl をサブクラス化して、必要なメソッドを何らかの方法で追加できます。ただし、そのようなサブクラス化は嫌いです。すべてのセグメントやその他の不便なことを行って再宣言する必要があるからです。でもそれしか方法がないのかもしれません…
おそらく、これを行う方法は、上に挙げた 3 つのアイデアとはまったく異なります。私は何に対してもオープンです。