我的应用程序中有一个登录页面,有两个用户 - 管理员和标准版。成功登录后,我们会进入欢迎页面,其中有一个弹出按钮。我想在标准用户的弹出按钮菜单中禁用第3和第4个菜单项
对于管理员,所有菜单项都应该可用
我希望根据用户在登录页面上的选择进行区分
请帮助我,我怎么能做到这一点?
我必须使用KVC概念吗?如果是,怎么样?
提前致谢..
答案 0 :(得分:12)
你需要在这里做两件事。
要停用第三和第四个菜单项,您需要将enabled
属性设置为NO
。
[[yourPopUpButton itemAtIndex:2] setEnabled:NO];
[[yourPopUpButton itemAtIndex:3] setEnabled:NO];
将autoenablesItems
的{{1}}属性设为NSPopUpButton
。
NO
如果您未设置此选项,则单击弹出按钮时将自动启用菜单项,即使您使用步骤1禁用它们。
在[yourPopUpButton setAutoenablesItems:NO];
方法中执行这些操作。
要将登录数据存储到永久存储,您可以使用-(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
是用户定义的密钥。您可以定义所需的任何键。
答案 1 :(得分:0)
迅速4:
// Example NSPopUpButton
@IBOutlet weak var examplePopUpButton: NSPopUpButton!
// Set programatically or in Interface Builder
examplePopUpButton.autoenablesItems = false
// Change programmatically as needed
if let menuitem = examplePopUpButton.item(at: someIndex) {
menuitem.isEnabled = false // or true
}