- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在努力了解使用 NSPopUpButton 有多么困难。到目前为止,它是 Cocoa 中最难编程的用户元素(至少据我所知)。
我想到的用例如下:
因此,在我的 AppController.h 中,我期望有两个属性,我可以将它们创建为属性并进行综合:
NSMutableArray *allPorts;
Port *currentlySelectedPort;
在我的 .m 中执行一个操作:
-(void)didSelectConnect:(id)sender{
NSLog(@"Selected port name is:%@",[currentlySelectedPort name]);
}
在 Port.h 中我有
NSString *name;
NSString *baudRate;
... etc ...
我创建了一个简单的项目,其中只包含一个弹出窗口(和一个标签),并按照各种文章,我设法用元素填充了一个 NSMutableArray,然后我使用一个 ArrayController 来显示值,然后在选择时设置值标签(使用对象 Controller )。然而,尽管这很聪明,但它不适合我要实现的用例。所以我转向这里寻求帮助
中号
最佳答案
好的,与 NSPopUpButton
的绑定(bind)有点复杂,因为它需要两件事:对值的绑定(bind),以及选择其中一个值的绑定(bind)。使事情变得更加复杂的是,有几种完全合法的方法可以做到这一点,您选择哪一种完全取决于您的程序结构,在某种程度上还取决于个人喜好。
因此,为了获得值列表,您绑定(bind)了 content
属性。在您的情况下,您可能会将其绑定(bind)到 NSArrayController
的 arrangedObjects
键。在此设置中,每个菜单项代表一个对象。默认情况下,菜单项的标题是通过对数组中的每个项目调用 description
返回的字符串。如果要为菜单标题使用不同的属性,还可以绑定(bind) contentValues
数组。只需确保您为 contentValues
指定的关键路径将 content
的关键路径作为其前缀(例如,您可以为 使用
和 arrangedObjects
contentarrangedObjects.name
for contentValues
)
这将为您提供代表对象的菜单项。接下来您需要的是某种识别所选对象的方法。您可以使用三种不同的绑定(bind):selectedIndex
、selectedObject
和 selectedValue
。它们分别表示用户选中的数组对象的索引、对象值(content
数组中的对象之一)、选中项的字符串标题(对象之一)如果您绑定(bind)该属性,则在 contentValues
数组中)。
因此,在您的情况下,您可以将 selectedObject
绑定(bind)到 Controller 类上的 selectedSerialPort
属性。当用户单击“连接”按钮时,您只需引用 selectedSerialPort
属性。
关于objective-c - NSPopUpButton、绑定(bind)和缩短的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/737809/
我注册通知NSPopUpButtonWillPopUpNotification,以便在显示弹出菜单之前更改它。新的弹出菜单包括正在运行的应用程序列表和受人尊敬的图标。当选择应用程序时,它会调用 @se
我的 View 上有几个 NSPopupButtons,它们在其中一个文本字段之后被定义为 newKeyView。问题是,当按下选项卡按钮时,不知怎的,他们没有得到聚焦环,就像他们被忽略了一样。应该怎
我创建了一个 NSCell 的自定义子类,其中包含一个 NSImageCell、一些 NSTextFieldCell 和一个 NSPopUpButtonCell。 我正在使用以下方法初始化弹出单元格:
我使用此代码向 NSView 添加弹出按钮: if (popupButton) [popupButton release]; popupButton = [[NSPopUpButton alloc]
当用户鼠标(或以其他方式细读)NSPopUpButton 中的项目时,是否可以检测到告诉我的 Controller 的操作?我似乎只收到有关新选择的通知,并且我希望在用户滚动菜单中的任何项目时收到通知
我有一个应用程序列表,我想制作一个 NSPopupButton 来显示应用程序名称的菜单,并在每个项目的左侧显示其图标。 我已经能够将 NSPopupButton 绑定(bind)到我的项目数组,但没
有没有办法自定义 NSPopUpButton 箭头的颜色?我环顾四周,但还没有找到答案 最佳答案 我真的不认为有一种“简单”的方法可以做到这一点。如果您查看 API 说明,它甚至指出它不会响应 set
我想创建一个带有自定义事件图像的 NSPopUpButton。我有两张图像,一张用于非事件图像,另一张用于事件图像。在界面生成器中,我设置了图像和 Alt。 NSPopUpButton 的图像。图像显
我的 Mac OS 应用中有一个清除按钮。 按下按钮时,它会清除表单的所有值并将 NSPopUpButton 重置为第一项。 问题是如何使用代码更改 NSPopUpButton 控件。 谢谢 最佳答案
我正在构建一个 OS X 桌面应用程序,允许用户从下拉列表中选择一个项目。我正在尝试创建一个 NSPopupButton 菜单,例如对 this question 的响应,这也与this tutori
我正在创建一个 NSPopUpButton,它有多个 NSMenuItems,每个 NSMenuItems 都有一个图像和一个标题。我试图创建的功能是这样的:当弹出窗口显示时我希望它正常运行,显示标题
我正在实现一个 NSPopUpButton(用于使用 Swift 的 macOS 应用程序),如图所示: 而且,我有以下代码,它确实有效: enum Importance: Int8 { case E
我在我的应用程序中的自定义 View 中创建了一个 NSPopUpButton,该 View 具有黑色填充。我现在想让 NSPopUpButton 具有白色文本颜色,但我似乎无法做到这一点。我应该怎么
property myPopUp : missing value on startbuttonpressed_(sender) if myPopUp's selectedItem = "Ite
我想复制下面菜单的外观,并在弹出按钮的菜单中命名为“部分”。 我可以看出灰色水平线是 NSMenuItem.separator() 但在这些水平线上设置标题和属性标题不起作用。添加子菜单让我无处可去,
我熟悉如何将数据从一个核心数据实体馈送到 NSPopUpButton 项中,以便可以为另一个项选择该数据。像这样的绑定(bind): 对于值本身: -> ValueSelection.Content
我是 Mac 编程新手,所以如果我的问题太愚蠢,请原谅我。 我正在编写一个小型应用程序,我需要在其中设置目标文件夹。我认为,不只是使用 NSButton “选择文件夹”,而是使用 Firefox 或
我正在构建一个应用程序,它有两个 NSPopUpButtons 作为 View 的一部分。第一个标题为 userChoice1,第二个标题为 userChoice2。我希望禁用 userChoice2
是否可以在 NSPopupButton 上设置默认选择?我有一个允许用户选择他们想要设置的服务器类型,但由于 NSPopupButton 始终显示第一项,如果这是他们想要的类型,他们可能会忽略它。但是
我有一个没有标题的 NSPopUpButton。我为这个弹出按钮设置了一个 NSImage。当我将内容值绑定(bind)到带有字符串的数组(以创建演示)时,弹出按钮的标题将更改为数组的值。 有没有办法
我是一名优秀的程序员,十分优秀!