问题标签 [nsview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
381 浏览

cocoa - Cocoa:创建可拖动区域

如何在可可中创建可拖动区域并能够在两者之间拖放图像。

前任:

区域 1:无图像

区域 2:图像

将 zone 2 的图像拖到 zone 1,并能够保存(核心数据)图像的位置。

我是否必须这样做:http: //developer.apple.com/Mac/library/documentation/Cocoa/Conceptual/DragandDrop/DragandDrop.html

0 投票
1 回答
284 浏览

cocoa - 为什么“添加子视图”不起作用?

我尝试添加子视图但不起作用。我的代码是:

NSLog 在控制台中写入:

为什么 addsubview 不起作用?当我运行我的应用程序时,会出现 HomeView,但我不能将其用作子视图。

0 投票
2 回答
2169 浏览

cocoa - 旋转包含 NSImageView 的 NSView

我正在创建一个 NSView,它在其 drawRect 方法中创建并添加一个 NSImageView 作为子视图。

我想旋转这个 NSImageView (circleView),或者 [self]。所以在另一种方法中,我正在尝试这样做:

但是,当调用该方法时,此代码不执行任何操作。难道我做错了什么?我尝试了 self.layer 和 circleView.layer 但似乎都没有工作......

0 投票
1 回答
622 浏览

objective-c - 可重用的接口位,在 IB 中设计

我正在制作一个在许多不同上下文中包含同一组按钮的应用程序。按钮将它们的动作发送到每个上下文中的不同对象。我希望能够在 IB 中设计一个包含按钮的单个 NSView,然后能够将该视图的副本放在我的笔尖的许多地方,同时保持链接,这样更改就会传播。我想将这些实例中的每一个连接到不同的对象,并让按钮将它们的动作发送到它们的父视图连接到的任何对象。

我想创建一个 NSView 的子类,它在加载时会用另一个从 nib 文件加载的视图替换自己,将连接的对象设置为文件的所有者,但我不相信这是最干净的方法。这是我对这个想法的实现(确实有效):

这是最干净的方法吗?有没有标准的方法来解决这个问题?

0 投票
3 回答
2578 浏览

objective-c - 将 NSView 绘制到 NSGraphicsContext 中?

我有一个 CGContext,我可以把它变成一个 NSGraphicsContext。我有一个带有clipRect 的NSWindow 作为上下文。

我想将滚动视图放入上下文中,然后将其他一些视图放入滚动视图中,以便我可以将图像放入其中......但是,我无法弄清楚如何将滚动视图附加到上下文中。

最终视图可能来自笔尖,但我不明白这有什么关系。

我看过这个线程,(http://lists.apple.com/archives/quartz-dev/2006/Nov/msg00010.html)但他们似乎放弃了如何将视图附加到上下文中的步骤,除非有什么明显的我错过了。

编辑:

我处于这种情况的原因是我正在编写一个 Mozilla 插件。浏览器给了我一个 CGContext (Quartz) 和一个 WindowRef (QuickDraw)。我可以把CGContext变成一个NSGraphicsContext,我可以把windowRef变成一个NSWindow。从另一个数据结构中,我也有剪切矩形......

我正在尝试将图像绘制到该上下文中,并根据需要使用滚动条以及按钮和其他 UI 元素......所以我需要(想要)一个 NSView......

0 投票
1 回答
1705 浏览

objective-c - 底部栏上的自定义 NSView 填充油漆

我有一个窗口,它有一个自定义窗口,NSView并且有一个带有控件的底栏,其中一个是NSColorWheel.

为简单起见,Window 为 332px 高,自定义 NSView 为 300px 高,底部栏为 32px 高。

awakeFromNib当应用程序使用以下代码加载窗口时,底部栏是我的一部分:

在我的自定义NSView类中,我用颜色填充矩形。NSView当应用程序在我的课堂上使用以下内容加载时,一切正常:

但是,如果我随后在底部栏中的色轮更改时调用更改自定义颜色的方法NSView,则底部栏将被颜色覆盖。以下代码说明了此方法(此代码在自定义NSView类中:

调整窗口大小会立即纠正问题,但显然我不希望用户必须调整窗口大小来解决明显的错误!

我不明白为什么我在调用时bounds似乎映射到父窗口而不是自定义窗口,但是当我使用鼠标调整窗口大小时边界正确调整(即使只有 1 个像素)。NSViewsetNeedsDisplay

我是否需要以某种方式考虑重绘的底部栏?

非常感谢任何和所有帮助。

0 投票
0 回答
858 浏览

cocoa - 在 Interface Builder 中调整视图大小

我无法想象某些东西。

假设我在带有其他内容的滚动视图中有三个视图。顶部、按钮和图像。按钮和图像都在顶部。顶部不会填满滚动视图,但是,按钮和图像会填满顶部。Top 有一个在运行时确定的最大大小,但它可能并非全部可见。按钮视图位于图像视图上方。按钮视图应该有一个固定的高度,但可以拉伸宽度。图像视图应该填满顶视图并在两个方向上拉伸。

问题是当带有滚动视图的窗口调整大小以及滚动视图滚动时会发生什么。

我希望每当顶视图的任何部分可见时,按钮视图都位于顶视图可见部分的顶部,并且我希望图像视图占据它下方可用的任何空间(如果有)。即使我正在滚动或调整外部窗口的大小。

我目前在 IB 中:TopVew 根本不调整大小,锁定顶部和左侧。ButtonView 调整宽度但不调整高度并锁定左上角 ImageView 调整两者的大小,并锁定左上角。(可能添加正确无关紧要)

发生的事情是,当我滚动时,整个东西都会滚动,所以 buttonview 会离开顶部,当我让窗口太小时,imageview 会覆盖 buttonview。然后,当我使窗口更大或滚动或其他任何东西时,它不会发现它。

我在这里缺少一些简单的东西吗?

谢谢。

0 投票
2 回答
1847 浏览

cocoa - NSView 的 addSubview 方法天生就慢吗?(可可 OSX)

我正在尝试加快加载大型项目时加载速度非常慢的 gui(gui 是组和子组的表示,由许多视图组成)。在此过程中,我查看了执行某些代码段需要多长时间,我发现大多数情况下调用 addsubview 需要 10 到 20 毫秒。我正在查看的子视图是一个披露按钮。我想知道这种方法是否天生就很慢,还是他们的其他一些因素在这里起作用?添加子视图所需的时间取决于子视图的复杂性还是不是一个因素?此外,是否有其他方法可用于添加可能更快的子视图?

0 投票
1 回答
1966 浏览

objective-c - 打印一个不可见的 NSView

最初,我使用自定义 NSView 创建了一个简单的程序。我画了一张照片(证书)并打印出来了!美丽的!一切都很好!

然后,我将自定义 NSView 移动到现有应用程序。我希望当用户点击打印时,它会打印此证书。很简单。我想我的控制器代码中可能有一个 NSView 指针。然后在初始化时我会填充指针。然后当有人想打印证书时,它会打印。问题是我所有的绘图代码都在“drawRect”方法中。不会调用此方法,因为此视图永远不会显示在窗口中。

我听说其他人使用不可见的 NSView 对象只是为了打印。我需要做什么?我真的不想在屏幕上显示这个视图。

罗杰

0 投票
3 回答
5546 浏览

objective-c - 放大 NSView

我有一个 NSView ,用户可以在其中画圆圈。这些圆存储为 NSBezierPaths 数组,在 drawRect: 中,我循环遍历数组并调用-stroke每个路径。如何添加一个按钮来放大和缩小 NSView?只是改变视图的边界?

谢谢。