macOS开发 NSSegmentedControl

先看效果

 

 直接复制代码运行

复制代码
#import "ViewController.h"

@interface ViewController ()

///分段控制器
@property (nonatomic, strong) NSSegmentedControl *MenuViewSegment;

@end

@implementation ViewController

#pragma mark 懒加载
- (NSSegmentedControl*)MenuViewSegment{
    if(!_MenuViewSegment){
//        _MenuViewSegment = [[NSSegmentedControl alloc] init];
//        [self.view addSubview:self.MenuViewSegment];
        NSSegmentedControl *lbl = [[NSSegmentedControl alloc] init];
        [self.view addSubview:lbl];
        _MenuViewSegment = lbl;
    }
    return _MenuViewSegment;
}


-(void)viewDidLoad {
    [super viewDidLoad];
    _MenuViewSegment.frame = NSMakeRect(100, 100, 200, 100);
    
    _MenuViewSegment.segmentCount = 3;//Segment数量
    [_MenuViewSegment setLabel:@"" forSegment:0];//显示文字和下标位置

    
    [_MenuViewSegment setImage:[NSImage imageNamed:NSImageNameUser] forSegment:1];//显示图片和下标位置
    [_MenuViewSegment setImageScaling:NSImageScaleProportionallyDown forSegment:1];

    NSMenu *subMenu = [[NSMenu alloc] init];
    
    //常规添加菜单
    [subMenu insertItemWithTitle:@"Item 1"action:@selector(beep:)keyEquivalent:@""atIndex:0];

    [subMenu insertItemWithTitle:@"Item 2"action:@selector(beep:)keyEquivalent:@""atIndex:1];
    [_MenuViewSegment setLabel:@"Item 1" forSegment:2];
    
    [_MenuViewSegment setMenu:subMenu forSegment:2];//显示菜单和下标位置
    [_MenuViewSegment setWidth:100 forSegment:2];//设置下标的宽度

 //[_MenuViewSegment setAction:@selector(segmentControlChange:)];//Segment各个项目菜单点击方法,NSMenuItem的beep:会冲突
}

#pragma mark 统一使用响应方法,不然不使用该方法的菜单栏将不能点击
-(void)beep:(NSMenuItem *)menuItem{

    NSLog(@"_____%@", menuItem);
    
    [self.MenuViewSegment setLabel:menuItem.title forSegment:2];
}



#pragma mark Segment各个项目菜单点击方法响应方法,和NSMenuItem会冲突
- (void)segmentControlChange:(NSSegmentedControl *)segControl{

    NSLog(@"tag : %ld , selectedSegment : %ld",segControl.tag,segControl.selectedSegment);
    
}
复制代码

 

posted on   高彰  阅读(163)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示