【发布时间】:2016-01-07 19:18:10
【问题描述】:
我被困住了!显然......因为我在这里发布一个问题。
我为我的 OS X / cocoa 应用程序构建了自己的自定义窗口控件。关闭按钮效果很好——没问题。当我禁用标题栏时,最小化按钮根本不起作用。
所以当标题栏像上图一样打开并且我点击这个方法时,最小化工作正常:
ViewController.h
@interface ViewController : NSViewController {
- (IBAction)minimize:(id)sender;
@property (strong) IBOutlet NSButton *btn_minimize;
}
@end
ViewController.m
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)minimize:(id)sender {
[[NSApp mainWindow] performMiniaturize:self];
}
-(IBAction)terminate:(id)sender {
[NSApp terminate:self];
}
@end
然后,如果我禁用标题栏,同样的方法将停止工作。没有错误,什么都没有。我都试过了:[[NSApp mainWindow] miniaturize:nil]; 和[[NSApp mainWindow] performMiniaturize:self];。两者都不起作用。实际上......如果标题栏打开,两者都可以工作。但是一旦我把它关掉,就不管用了。
想法/cmets?
哦,我正在使用 Storyboards、Xcode 7,并且我的目标是 10.10 并使用 10.11 SDK,如果这很重要的话。
提前致谢。
【问题讨论】:
-
当您禁用/隐藏它时,主菜单栏的状态是什么(应该有验证,这意味着不受支持的菜单项显示为灰色)。如果它们是可点击的,它们会起作用吗? (他们是在调用你的 viewController 吗?)
-
[NSWindow performMiniaturize:] 调用 [minimizeButton performClick:esi], +[NSWindow _minimizeAll]: 调用 [ebx standardWindowButton:0x1] isEnabled] != 0x0) && ([ebx isVisible] != 0x0) .手动覆盖调用私有 _minimizeToDock。这意味着如果您希望它们工作,您可以使用私有选择器或显示这些按钮
-
你想把这些按钮留在这个位置吗?
标签: objective-c xcode macos cocoa nswindow