关闭

MacOS 开发- NSBox

标签: NSBoxMacOS-开发NSTitlePos
2231人阅读 评论(1) 收藏 举报
分类:

定义

NSBox 继承自 NSView。一般作为有标题的容器使用,适用于分组和滚动视图。

NSBox、NSScrollView、和NSSplitView、NSRulerView 比较

类用于为窗口中的视图集合或其它视图对象提供图形“附件”。

  • NSBox 类可以将窗口中的元素分组,并为整组元素描画一个边界。
  • NSSplitView 类可以在垂直或水平方向附加一些视图,并为每个视图分配一定的公共区域,用户可以通过滑动控制条来重新分配视图的区域。
  • NSScrollView 类,及其辅助类 NSClipView,为用户提供一个滚动机制,以及让用户初始化和控制滚动的图形对象。
  • NSRulerView 类则可以为一个滚动视图添加标尺和标志。

创建及使用

代码如下

- (void)addBox{

    NSBox *box=[[NSBox alloc] initWithFrame:NSMakeRect(15.0,10,300,300)];

    [box setBoxType:NSBoxPrimary]; //盒子样式
    [box setTitlePosition:NSAtTop]; //标题相对盒子的位置

    box.contentViewMargins = NSMakeSize(20, 30); //左右、上下

    box.contentView.wantsLayer = YES;
    box.contentView.layer.backgroundColor = [NSColor cyanColor].CGColor;

    NSTextField *textField = [[ NSTextField alloc]
                              initWithFrame:NSMakeRect(10,10,80,20)];
    textField.backgroundColor = [NSColor redColor];
    [box.contentView addSubview:textField];

    [self.window.contentView addSubview:box];

}

属性

背景色

如下设置背景色无效

box.wantsLayer = YES;
box.layer.backgroundColor = [NSColor cyanColor].CGColor;

设置 contentView 有效:

box.contentView.wantsLayer = YES;
box.contentView.layer.backgroundColor = [NSColor cyanColor].CGColor;

问题:如何设置 margin 的背景色呢?希望知道的童鞋们回复我。


标题

只显示一行

  • 无论标题输入多少文字,无论标题显示在哪个位置,只显示一行文字。

NSTitlePosition 标题位置

typedef NS_ENUM(NSUInteger, NSTitlePosition) {

    NSNoTitle               = 0,
    NSAboveTop              = 1,
    NSAtTop             = 2,
    NSBelowTop              = 3,
    NSAboveBottom           = 4,
    NSAtBottom              = 5,
    NSBelowBottom           = 6
};

NSBoxType 盒子样式

typedef NS_ENUM(NSUInteger, NSBoxType) {

    NSBoxPrimary    = 0,    // group subviews with a standard look. default
    NSBoxSecondary  = 1,    // same as primary since 10.3
    NSBoxSeparator  = 2,    // vertical or horizontal separtor line.  Not used with subviews.
    NSBoxOldStyle   = 3,    // 10.2 and earlier style boxes
    NSBoxCustom NS_ENUM_AVAILABLE_MAC(10_5) = 4     // draw based entirely on user parameters, not human interface guidelines
};
0
0
查看评论

NSBox

分组和滚动视图。 NSBox、NSScrollView、和NSSplitView类用于为窗口中的视图集合或其它视图对象提供图形“附件”。您可以通过NSBox类将窗口中的元素分组,并为整组元素描画一个边界。NSSplitView类可以在垂直或水平方向附加一些视图,并为每个视图分配一定的公共区域,用户可...
  • yuanya
  • yuanya
  • 2014-03-19 11:13
  • 1146

macOS 开发入门教程: Part 1

原文:macOS Development for Beginners: Part 1 作者:Sarah Reichelt 译者:kmyhy 你想开发自己的的 macOS App 吗?好消息!苹果让 macOS 开发变得超级简单,这个系列教程会教你如何进行 macOS App。你将学习如何...
  • kmyhy
  • kmyhy
  • 2017-06-22 09:01
  • 1903

MacOS 开发 - NSDatePicker(日期选择)

使用 NSDatePicker 就可以调出日期选择,结果图如最下。注意事项 创建 枚举 NSDatePickerStyle NSDatePickerElementFlags 效果图 参考资料 注意事项 建议把这个 picker 作为全局变量,这样就不会每次点击按钮都添加。 使用setAction 监...
  • lovechris00
  • lovechris00
  • 2017-09-08 17:44
  • 2220

MacOS 开发入门

引言 相关书籍 剑指人心的书 Cocoa入门使用Objective-C 视频教程 我的开发笔记CSDN 博客目录 基础控件 DockWindow状态栏目录栏 文件管理等 视图效果 小功能 综合 我的MacOS 开发简书文集 实用Demo 优秀MacOS 开发博客 QQ群 参考资料 ...
  • lovechris00
  • lovechris00
  • 2017-05-27 10:24
  • 5346

使用Swift开发一个MacOS的菜单状态栏App

这两天突然想看看OSX下的App开发,看了几篇文章。下面这一篇我觉得入门是非常好的。我仅转述为中文,并非原文翻译。原文地址:http://footle.org/WeatherBar/ 下面开始介绍如何使用Swift开发一个Mac Menu Bar(Status Bar) App。通过做一个简单的天...
  • yanghuiliu
  • yanghuiliu
  • 2016-07-28 12:11
  • 6874

iOS Mac本地服务器moco服务端并进行网络请求实战

声明:本文参考文章如下:http://www.jianshu.com/p/cb7eb3bf272c http://www.jianshu.com/p/638da64422a0 http://www.jianshu.com/p/b22b9ddfa9c0 https://github.com/dream...
  • Xoxo_x
  • Xoxo_x
  • 2017-08-12 18:31
  • 1127

MacOS内核扩展驱动开发

1. kext 10.11之后都要签名才能安装, 开发时候,可以安装VMWare, 然后真机,command+R进入系统恢复,选择实用工具,输入csrutil disable, 关闭签名验证,就可以sudo kextload test.kext加载了。 2. 新建工程,注意要添加一个libkern...
  • jimk1983
  • jimk1983
  • 2017-10-25 14:32
  • 144

MacOS 和iOS 开发细节上的不同(OC)

此处默认读者都已掌握 iOS 开发,只记录macOS 上的代码。设置背景色 按钮添加点击事件设置背景色 self.imgView.wantsLayer = true; self.imgView.layer.backgroundColor = [NSColor cyanColor].CG...
  • lovechris00
  • lovechris00
  • 2017-09-06 16:36
  • 2389

MacOS 开发 - NSUserNotification

添加通知 一般通知 图片相关设置 带有按钮的通知 按钮相关小结 NSUserNotificationActivationType 点击按钮产生目录 可以回复的推送 定时发送 循环发送 设置是否只是锁屏状态可见 设置代理 NSUserNotificationCenterDelegate 移除通知 删除...
  • lovechris00
  • lovechris00
  • 2017-09-29 15:32
  • 977

macOS 控件教程(2)

原文:macOS Controls Tutorial: Part 2/2 作者:Ernesto García 译者:kmyhy 更新说明:由 Ernesto García 升级至 Xcode 8.2/Swift 3。上一版本由 Michael Briscoe...
  • kmyhy
  • kmyhy
  • 2017-05-05 09:10
  • 1391
    博客专栏
    个人资料
    • 访问:210152次
    • 积分:3453
    • 等级:
    • 排名:第11457名
    • 原创:127篇
    • 转载:6篇
    • 译文:1篇
    • 评论:96条
    最新评论