gpt4 book ai didi

objective-c - COCOA:用枚举填充弹出按钮

转载 作者:行者123 更新时间:2023-12-03 17:48:54 24 4
gpt4 key购买 nike

我知道这似乎是一个愚蠢的问题,但我在寻找一种用枚举填充弹出按钮的方法时遇到了问题。其背后的原因是我可以更轻松地进行switch case

最佳答案

无法使用enumNSPopupButton 填充为项目。处理它们会出现多个问题。

首先,enum不是任何对象,事实上它们只是一个命名的integer常量,而NSPopupButton需要NSString 作为其值/标题。

假设如果您在 NSPopupButton 中手动提供相同的名称,则 IBAction 的发送者会将值作为 NSString 返回。这里您再次需要手动与整数值进行比较。然后你将运行一个 switch case...呵呵。这样做太难看了。

编辑:解决方法。

创建一个与 enum 的顺序完全相同的字符串数组,并确保 enum 从 0 开始连续。然后在单击弹出窗口时,将弹出窗口的标题与数组进行比较并过滤出索引,该索引将是与您的枚举相同!

编辑:示例

enum  /// create an enum with all values
{
sizeBytes = 1,
sizeKb = 2,
sizeMb,
sizeGB
};

/// create an array and fill the enum values manually. Enum indexes should match array indexes
NSMutableArray* _sizeList = [NSMutableArray new];

[_sizeList addObject:@"BYTES"];
[_sizeList addObject:@"KB"];
[_sizeList addObject:@"MB"];
[_sizeList addObject:@"GB"];



/// do switch case as gven below : **sizeSelector** is popup button
switch ([sizeSelector indexOfSelectedItem]) {
case sizeGB:
//do the code
break;
case sizeMb:
//do the code
break;
//......so on
default:
break;
}

关于objective-c - COCOA:用枚举填充弹出按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34506657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com