1

NSSegmentedControl有効な場合はセグメントが選択され、無効な場合はセグメントが選択されていない (iTunes のビュー NSSegmentedControl の動作のようなもの) を使用したいと思います。

ここにいくつかの画像があります:

imagebam.com 有効で選択済み

imagebam.com 正しく無効化

imagebam.com 無効だが正しくない

(*) BOOL プロパティが変更されるたびに呼び出す関数を作成できることを認識しています。この関数では、切り離されたすべてのセグメントを設定したり、適切なセグメントを選択したりできますが、これを達成する方法があるかどうかを知りたいですCocoa Bindings または Interface Builder。

更新:問題のいくつかの画像を追加しました

4

2 に答える 2

0

編集:これについては完全にはわかりませんが、「選択プレースホルダーなし」が最善の策だと思います。http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingsOptions.html%23//apple_ref/doc/uid/20002304-187525

ただし、条件付きでコントロールを無効にする場合は、プログラムで何も選択しないように指定する必要があると思います。

于 2010-11-13T03:27:59.177 に答える
0

プログラムによる解決策は次のようになります。

- (void)setSegmentEnabled:(BOOL)enabled{
     if (enabled)
     {
         int vState = [[NSUserDefaults standardUserDefaults] integerForKey:@"SelectedSegmentView"];
         [viewSegment setSelectedSegment:vState];
         segmentEnabled = YES;        
     }
     else
     {
         [viewSegment setSelected:NO forSegment:0];
         [viewSegment setSelected:NO forSegment:1];
         [viewSegment setSelected:NO forSegment:2];
         segmentEnabled = NO;
     }
}

segmentEnabledバインドされている BOOL プロパティに独自のセッターを実装しているだけですviewSegment

于 2010-11-13T19:49:03.953 に答える