我想将NSButton
作为“默认”按钮,这样当我点击“Enter”键时,该按钮被点击(即其点击动作被调用),我可以通过设置其键来实现相当于'\ _'或在Xib中点击'Enter'键。
但是如果同一窗口没有标题栏,则默认按钮不起作用。
我试过让myWindow无边界地进行无边框
[mywindow setStyleMask:NSBorderlessWindowMask];
仍然无济于事。
所以我的问题是如何将NSButton作为“默认”按钮,而不使用标题栏到它的窗口。
感谢。
答案 0 :(得分:0)
在下面以编程方式尝试: -
NSRect myRect = NSMakeRect(0.0, 0.0, 1, 1);
NSButton *defaultButton = [[NSButton alloc] initWithFrame:myRect];
[defaultButton setKeyEquivalent:@"\r"];
[defaultButton setTarget:self];
[defaultButton setAction:@selector(yourActionMethod:)];
[[self view] addSubview:defaultButton];
[defaultButton release];
答案 1 :(得分:0)
使用NSBorderlessWindowMask的窗口无法成为密钥或主密钥, 除非你实现canBecomeKeyWindow或canBecomeMainWindow 返回YES
子类NSWindow
并实施canBecomeKeyWindow
或canBecomeMainWindow
以使NSButton
成为“默认”按钮,不带标题栏窗口。
@interface PBWindow : NSWindow
@end
@implementation PBWindow
-(BOOL)canBecomeKeyWindow
{
return YES;
}
@end
将NSWindow类名设置为PBWindow:
输出: