【发布时间】:2017-11-08 08:54:45
【问题描述】:
我在我的 mac 应用程序中使用LIBRARY。问题就在这里,就像我在 viewcontroller 中添加 childviewcontroller 作为子视图并禁用该视图,尽管它是可访问的。你可以在这个VIDEO看到。
还有我的STORYBOARD。你可以看到customview和view_main。
我还制作了NSView 的自定义类来启用和禁用它。以下是通过访问权限禁用该视图的代码。
@implementation NSView (customview)
-(void) setEnabled:(BOOL) isEnabled{
for (NSView* subView in self.subviews) {
if ([subView isKindOfClass:[NSControl class]]) {
[(NSControl*)subView setEnabled:isEnabled];
}else if ([subView isKindOfClass:[NSView class]]) {
[subView setEnabled:isEnabled];
}
}
}
这是我点击按钮的代码
#pragma -mark All action methods
- (IBAction)sidebarChanged:(ITSidebar *)sender {
NSLog(@"%@: %lu", [sender selectedItem], (unsigned long)[sender selectedIndex]);
}
- (IBAction)starClicked:(id)sender {
//[self.label setStringValue:@"Star"];
for (NSView* v in [self.custom_view subviews]) {
[v removeFromSuperview];
}
[self.view_main setEnabled:YES];
[self.tbl_emojis setEnabled:YES];
}
- (IBAction)watchClicked:(id)sender {
for (NSView* v in [self.custom_view subviews]) {
[v removeFromSuperview];
}
ContactUsVC* vc = [[ContactUsVC alloc] initWithNibName:@"ContactUsVC" bundle:nil];
vc.view.frame = self.custom_view.bounds;
[self addChildViewController:vc];
[self.custom_view addSubview:vc.view];
[self.view_main setEnabled:NO];
[self.tbl_emojis setEnabled:NO];
}
- (IBAction)tagClicked:(id)sender {
NSLog(@" Tag clicked");
for (NSView* v in [self.custom_view subviews]) {
[v removeFromSuperview];
}
HelpVC* vc = [[HelpVC alloc] initWithNibName:@"HelpVC" bundle:nil];
vc.view.frame = self.custom_view.bounds;
[self addChildViewController:vc];
[self.custom_view addSubview:vc.view];
[self.view_main setEnabled:NO];
[self.tbl_emojis setEnabled:NO];
//[self.label setStringValue:@"Tag"];
}
- (IBAction)trashClicked:(id)sender {
NSLog(@" Trash clicked");
for (NSView* v in [self.custom_view subviews]) {
[v removeFromSuperview];
}
//id animator = [[ContactUsVC alloc] init];
ChangePasswordVC* vc = [[ChangePasswordVC alloc] initWithNibName:@"ChangePasswordVC" bundle:nil];
vc.view.frame = self.custom_view.bounds;
[self addChildViewController:vc];
[self.custom_view addSubview:vc.view];
[self.view_main setEnabled:NO];
[self.tbl_emojis setEnabled:NO];
// [self.label setStringValue:@"Trash"];
}
我不知道为什么在我的其他视图上调用按钮操作背后的原因。我应该怎么做才能阻止该按钮动作。
请帮帮我,我卡在这里
【问题讨论】:
标签: ios objective-c macos nsview nsbutton