我的应用程序中有一个登录页面,其中包含两个用户——管理员和标准用户。成功登录后,我们进入欢迎页面,其中有一个弹出按钮。我想为标准用户禁用弹出按钮菜单中的第 3 个和第 4 个菜单项。
对于管理员,所有菜单项都应该可用。
我希望根据用户在登录页面上的选择进行区分。
请帮助我,我该如何实现?
我必须使用 KVC 概念吗?如果是,如何?
提前致谢..
最佳答案
你需要在这里做两件事。
要禁用第三个和第四个菜单项,您需要将它们的
enabled
属性设置为NO
。[[yourPopUpButton itemAtIndex:2] setEnabled:NO]; [[yourPopUpButton itemAtIndex:3] setEnabled:NO];
将
NSPopUpButton
的autoenablesItems
属性设置为NO
。[yourPopUpButton setAutoenablesItems:NO];
如果您不设置此项,即使您使用第 1 步禁用它们,菜单项也会在您单击弹出按钮时自动启用。
在 -(void)awakeFromNib
方法中做这些事情。
要将登录数据存储到持久存储中,您可以使用 NSUserDefaults
。例如。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; // LINE 1: create userDefaults instance
[userDefaults setObject:@"enteredUserType" forKey:@"UserType"]; // LINE 2: store a value
NSString *userType = [userDefaults objectForKey:@"UserType"]; // LINE 3: retrieve the value
这里,UserType
是一个用户定义的Key。您可以定义任何您想要的键。
关于objective-c - NSPopUpButton-如何有选择地禁用某些菜单项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872094/