3

NSSegmentedControlのサブクラスインスタンスを使用するようにプログラムで作成されたに指示する方法について、私は少し困惑していますNSSegmentedCell

NSSegmentedCellIB を使用して構築されたサブクラスを使用する場合はNSSegmentedControl、次のように簡単に実行できます。

  1. にドラッグNSSegmentedControlします。NSView
  2. クリックしてNSSegmentedCell
  3. インスペクターで、クラス定義をサブクラスに割り当てます (例: myCustomCell)

ジョブ完了。

ただし、NSSegmentedControl次の単純化された例のようにプログラムで as を作成する場合、セルをサブクラス化する方法がわかりません...

-(void)creatSegmentControl {

    if (!mySegmentControl)
        mySegmentControl = [[NSSegmentedControl alloc] 
                               initWithFrame:NSMakeRect(0,0 400,20)];

    [mySegmentControl setSegmentCount:2];
    [mySegmentControl setLabel:@"First" forSegment:0];
    [mySegmentControl setLabel:@"Second" forSegment:0];
    [mySegmentControl setTarget:self];
    [mySegmentControl setAction:@selector(segmentClicked:)];
}

NSSegmentedControlセグメント セル インスタンスに使用するクラスを定義するメソッドがないようです。

いつものように、すべての助けに感謝します。

アップデート

実装しようとし[mySegmentControl setCellClass:[myCustomCell class]ましたが、それもうまくいきませんでした。他のAppKitコントロールのようにセルクラスを設定する機能を継承したのではないかと考えていました。:-(

これは可能でなければなりません...どういうわけか...

4

2 に答える 2

0

ちょっと遅いですが、cellClassの作業を上書きしませんか?

+ (Class)cellClass
{
    return [YourCustomCellClass class];
}
于 2014-03-29T19:38:07.487 に答える
0

プロパティcellClassは非推奨のカテゴリにあります。

NSControl何よりも前に、カスタム クラスのインスタンスを作成し、 の cell プロパティを設定する必要があります(はいNSSegmentedControl、から継承しますNSControl) 。

    NSSegmentedControl* oSegment = [[NSSegmentedControl alloc] init];
    QPDFSegmentedCell* csell = [[QPDFSegmentedCell alloc] init];
    oSegment.cell = csell;
于 2021-03-12T21:58:08.920 に答える