首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在NSScrollView中居中NSView

要在 NSScrollView 中居中 NSView,可以使用以下步骤:

  1. 创建一个 NSView,并将其添加到 NSScrollView 中。可以使用以下代码:
代码语言:txt
复制

NSScrollView *scrollView = [NSScrollView alloc initWithFrame:NSMakeRect(0, 0, 100, 100)];

NSView *view = [NSView alloc initWithFrame:NSMakeRect(0, 0, 100, 100)];

scrollView addSubview:view;

代码语言:txt
复制

在上面的代码中,我们创建了两个 NSView,一个用于显示,一个用于添加到 NSScrollView 中。

  1. 将 NSScrollView 的大小调整为显示的 NSView 的大小。可以使用以下代码:
代码语言:txt
复制

NSSize size = view size;

NSScrollView *scrollView = [NSScrollView alloc initWithFrame:NSMakeRect(0, 0, size.width, size.height)];

代码语言:txt
复制

在上面的代码中,我们获取了显示的 NSView 的大小,并将其用于创建一个新的 NSScrollView。

  1. 将 NSView 的大小调整为 NSScrollView 的大小。可以使用以下代码:
代码语言:txt
复制

NSSize size = scrollView.contentSize;

NSView *view = scrollView.contentView viewWithTag:0;

NSSize newSize = view size;

view setSize:newSize;

代码语言:txt
复制

在上面的代码中,我们获取了 NSScrollView 的内容大小,并使用该大小来调整显示的 NSView 的大小。

  1. 将新的 NSScrollView 添加到应用程序窗口中。可以使用以下代码:
代码语言:txt
复制

NSApp activateIgnoringOtherApps:YES;

NSScrollView *scrollView = [NSScrollView alloc initWithFrame:NSMakeRect(0, 0, size.width, size.height)];

scrollView setHasHorizontalScroller:YES;

scrollView setHasVerticalScroller:YES;

scrollView setDelegate:self;

scrollView setDocumentView:view;

scrollView setSize:newSize;

scrollView setFrame:NSMakeRect(0, 0, size.width, size.height);

self.window setContentView:scrollView;

代码语言:txt
复制

在上面的代码中,我们创建了新的 NSScrollView,并将其添加到应用程序窗口中。我们还设置了 NSScrollView 的代理和文档视图,并将显示的 NSView 的大小设置为新的 NSScrollView 的大小。

以上步骤完成后,您就可以在 NSScrollView 中居中显示 NSView 了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

divdiv垂直居中水平居中(css如何让div水平居中)

最近写网页经常需要将div屏幕居中显示,遂记录下几个常用的方法,都比较简单。...水平居中直接加上标签即可,或者设置margin:auto;当然也可以用下面的方法 下面说两种屏幕正中(水平居中+垂直居中)的方法 放上示范的html代码: <div....main{ text-align: center; /*让div内部文字居中*/ background-color: #fff; border-radius: 20px; width: 300px...方法二: 仍然是绝对布局,让left和top都是50%,这在水平方向上让div的最左与屏幕的最左相距50%,垂直方向上一样,所以再用transform向左(上)平移它自己宽度(高度)的50%,也就达到居中效果了...,可以使用最简单的标签,不过已经过时了,用法如下: 123 这个标签就是相对于标签里的文字,可以使其居中

15K20

macOS开发之NSTableView的应用详解

若要使NSTableView支持滚动,通常会将其嵌套入NSScrollView控件。...视图,开发者,我们可以根据实际需求选择。...二、构建一个简单的列表视图     首先新建一个测试工程,ViewController.m文件编写如下代码: #import "ViewController.h" @interface ViewController...如果我们要对Cell的渲染进行一些定制,可以如下方法实现: //将要渲染cell调用的方法 开发者可以拿到cell对象做定制 - (void)tableView:(NSTableView *)tableView...Cell实例: //返回自定义的Cell实例 /* 需要注意,这个方法第一次调用的时候 tableColumu对象是nil 如果这时返回了Cell,则此Cell宽度会覆盖整个列表 使用时要多加注意

4.8K21
  • 未知大小的父元素设置居中

    当提到web设计居中元素时。关于被居中的元素和它父元素的信息,你知道的越多就越容易设置。那么假如当你不知道任何信息?居中也是可设置的。...1) 居中元素外 包裹table-cell,设置table-cell只是让table-cell的元素table-cell居中。...2)table添加tr,td前要先添加tbody。 ---- 困难的:不知道子元素的宽高 当你不知道待居中子元素的尺寸时,设置子元素居中就变得困难了。 ?...我要告诉你的是这个ghost元素技巧是更好的方式并且应该是你想要的居中技巧近些年来。但是实际上,它和table技巧是一样的。该技巧几乎在所有浏览器中都支持,包括IE 8+。...最好的做法是父元素设置font-size:0 并在子元素设置一个合理的font-size。

    4K20

    SwiftUI 实现视图居中的若干种方法

    欢迎大家 Discord 频道[2] 中进行更多地交流将某个视图父视图中居中显示是一个常见的需求,即使对于 SwiftUI 的初学者来说这也并非难事。...需求实现下图中展示的样式:彩色矩形视图中居中显示单行 Textimage-20220829142518962填充物Spacer最常见也是最容易想到的解决方案。...当然,你也可以利用 Spacer 这个特性,控制 Text HStack 可使用的宽度。...请阅读 SwiftUI 專欄 #4 Color 不只是顏色[3] ,掌握有关 Color 更多的内容对齐指南上节,我们通过填充物让 Text 实现了左右居中。...上下居中则是利用了 HStack 对齐指南的默认设定( .center )实现的。本节,我们将完全通过对齐指南来实现居中操作。

    6.7K40

    html中表格整体居中,html怎么把表格居中

    html把表格居中的方法:首先创建一个HTML示例文件;然后使用table标签创建一个两行两列的表格;接着给table标签添加一个class属性;最后将margin属性设置为“0 auto”即可。...html怎么让表格页面居中 新建一个html文件,命名为test.html,用于讲解html怎么让表格页面居中。...test.html文件内,使用table标签创建一个两行两列的表格,用于测试。 test.html文件内,给table标签添加一个class属性,用于下面设置css样式。...css标签内,通过class设置table表格的样式,定义table表格的宽度为100px,高度为100px。 css标签内,再将margin属性设置为0 auto,从而实现表格居中显示。...浏览器打开test.html文件,查看实现的效果。

    14.3K20

    前端开发各类型居中方式总结

    前端开发中经常用到的就是元素居中,有时候不同的元素居中方式不同就忘记了,明明已经设置了居中,但却没有效果,搞得人很懵逼,还得去搜索一下,所以今天总结了一下,方便以后查用。...水平居中 水平居中算是前端工程师的基本功了,它实现的是让元素水平方向居中显示。 行内元素 首先看它的父元素是不是块级元素,如果是,则直接给父元素设置 text-align: center; 。.../img.png" alt="行内元素"> 块级元素 1.根据宽度 已设置宽度: 需要谁居中,给其设置 margin: 0 auto; 作用:使盒子自己居中 .father...2.定位属性 首先设置父元素为相对定位,再设置子元素为绝对定位,设置子元素的 left:50%,即让子元素的左上角水平居中。...,也是使用子绝父相,不过垂直居中要设置子元素的top: 50%。

    57410
    领券