在不使其成为关键的情况下使NSWindow变小 [英] deminiaturize NSWindow without making it key
本文介绍了在不使其成为关键的情况下使NSWindow变小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有主窗口和几个子窗口,我想显示主窗口,当用户单击码头图标,但没有使它成为一个关键窗口,如果只有一个(如果没有键,它会变成自动键窗口)。
以下是当前代码:
if(fMainWinDelegate ){
if(not [NSApp keyWindow]){
NSLog(@AppDelegate :: applicationShouldHandleReopen [fMainWinDelegate showWindow]);
[fMainWinDelegate showWindow];
}
else {
if([fMainWinDelegate.window isMiniaturized]){
NSLog(@AppDelegate :: applicationShouldHandleReopen [fMainWinDelegate.window deminiaturize:self]
[fMainWinDelegate.window deminiaturize:self];
//这一个不工作,它使窗口也是关键窗口
}
else if(not [fMainWinDelegate.window isVisible]&& not [fMainWinDelegate.window isMiniaturized] {
NSLog(@AppDelegate :: applicationShouldHandleReopen [fMainWinDelegate.window orderFront:self]);
[fMainWinDelegate.window orderFront:self];
}
}
}
解决方案>
我结束了很简单的解决方案:
if(fMainWinDelegate){
if NSApp keyWindow]){
NSLog(@AppDelegate :: applicationShouldHandleReopen [fMainWinDelegate showWindow]);
[fMainWinDelegate showWindow];
}
else {
if([fMainWinDelegate.window isMiniaturized]){
NSLog(@AppDelegate :: applicationShouldHandleReopen [fMainWinDelegate.window deminiaturize:self]
//保存当前关键窗口
NSWindow * currKey = [NSApp keyWindow];
[fMainWinDelegate.window deminiaturize:self];
//恢复保存的密钥窗口
[currKey makeKeyWindow];
}
else if(not [fMainWinDelegate.window isVisible]&& not [fMainWinDelegate.window isMiniaturized]){
NSLog(@AppDelegate :: applicationShouldHandleReopen [fMainWinDelegate.window orderFront:自]);
[fMainWinDelegate.window orderFront:self];
}
}
}
I have main window and several child windows, i would like to show main window when user click on dock icon, but without making it a key window, if there just was one (it will become automatically key if there is no key window).
Here is current code:
if ( fMainWinDelegate ) {
if (not [NSApp keyWindow]) {
NSLog(@"AppDelegate::applicationShouldHandleReopen [fMainWinDelegate showWindow]");
[fMainWinDelegate showWindow];
}
else {
if ([fMainWinDelegate.window isMiniaturized]) {
NSLog(@"AppDelegate::applicationShouldHandleReopen [fMainWinDelegate.window deminiaturize:self]");
[fMainWinDelegate.window deminiaturize:self];
//this one is not working, it make window also the key window
}
else if (not [fMainWinDelegate.window isVisible] && not [fMainWinDelegate.window isMiniaturized]) {
NSLog(@"AppDelegate::applicationShouldHandleReopen [fMainWinDelegate.window orderFront:self]");
[fMainWinDelegate.window orderFront:self];
}
}
}
解决方案
I've ended with pretty simple solution:
if ( fMainWinDelegate ) {
if (not [NSApp keyWindow]) {
NSLog(@"AppDelegate::applicationShouldHandleReopen [fMainWinDelegate showWindow]");
[fMainWinDelegate showWindow];
}
else {
if ([fMainWinDelegate.window isMiniaturized]) {
NSLog(@"AppDelegate::applicationShouldHandleReopen [fMainWinDelegate.window deminiaturize:self]");
// save current key window
NSWindow *currKey = [NSApp keyWindow];
[fMainWinDelegate.window deminiaturize:self];
// restore saved key window
[currKey makeKeyWindow];
}
else if (not [fMainWinDelegate.window isVisible] && not [fMainWinDelegate.window isMiniaturized]) {
NSLog(@"AppDelegate::applicationShouldHandleReopen [fMainWinDelegate.window orderFront:self]");
[fMainWinDelegate.window orderFront:self];
}
}
}
这篇关于在不使其成为关键的情况下使NSWindow变小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文