Cocoa:如何将按钮连接到视图?

Posted

技术标签:

【中文标题】Cocoa:如何将按钮连接到视图?【英文标题】:Cocoa: how to connect a button to a view? 【发布时间】:2010-06-16 13:25:53 【问题描述】:

标题问题可能有点含糊。我会尽量解释清楚(还要注意我是可可编程的新手,所以请原谅任何错误:))。

我有一个扩展 NSView 的视图,我想在其中绘制一些图像。 当我单击一个按钮时,我希望从磁盘上的某些文件中加载图像。

我设法将所有加载到 NSMutableArray 中。我的问题是,如何设置: - 我需要带有图像(路径)的 NSMutableArray 可用于加载功能(所以我将它放在控制器中并为 UI 中的按钮分配了一个操作)。但在这种情况下,如何在自定义视图类的 drawRect 函数中访问它?

如果我把它作为我的自定义视图类的成员,我不知道如何将它链接到按钮,以便在单击按钮时,数组将填充图像路径。

我想我有点困惑,因为我是 osx 编程的新手,不知道这些东西是如何连接的。

希望有人能为我净化一下空气。谢谢。

【问题讨论】:

【参考方案1】:

图像视图应该有一个属性来保存图像数组,并且控制器应该将此属性设置为其图像数组。 (当然,图像视图应该制作自己的数组浅表副本。)

图像(路径)

假设您的意思是路径名,图像不是路径,路径也不是图像。控制器应该加载图像并将图像传递给视图。视图不应该关心图像可能来自哪里。

【讨论】:

感谢您的信息,是的,路径名就是我的意思(更确切地说,我只是从文件夹中读取文件并将它们存储在数组中)。但是如何将图像从控制器传递到视图?假设我有:@interface MyView : NSView NSMutableArray *images; ... ... @end 和一个控制器:@interface MyController : NSOBject NSMutableArray *imagesInController; @end 我如何从控制器设置图像数组? 正如我所说,视图应该有一个属性。控制器将简单地向视图发送一条消息以设置该属性。请参阅 Objective-C 编程语言文档:developer.apple.com/mac/library/documentation/Cocoa/Conceptual/…

以上是关于Cocoa:如何将按钮连接到视图?的主要内容,如果未能解决你的问题,请参考以下文章

切换 XIB 视图 - Cocoa Mac

如何将情节提要中的多个按钮连接到单个动作?

如何将情节提要中的按钮连接到 Xcode 中的代码

将 xib 创建的单元格中的按钮连接到选项卡式视图应用程序中的视图

如何让一个按钮根据发送的变量连接到多个视图控制器,并发送一个新变量

将 UITextfield“清除”默认按钮连接到 UILabel