Macos Xcode 4,Cocoa标题栏从接口生成器中删除将禁止编辑textView

Macos Xcode 4,Cocoa标题栏从接口生成器中删除将禁止编辑textView,macos,cocoa,xcode4,Macos,Cocoa,Xcode4,我正在设计一个没有标题栏的应用程序,但是当我在Xcode 4中使用interface builder删除标题栏时,它会导致可编辑字段(我尝试的是textView和textField)不可编辑,尽管在其中签入了可编辑属性?为什么会发生这种情况?是否有办法防止这种情况发生?您必须对窗口进行子类化,并覆盖以下方法: - (BOOL)canBecomeKeyWindow { // because the window is borderless, we have to make it activ

我正在设计一个没有标题栏的应用程序,但是当我在Xcode 4中使用interface builder删除标题栏时,它会导致可编辑字段(我尝试的是textView和textField)不可编辑,尽管在其中签入了可编辑属性?为什么会发生这种情况?是否有办法防止这种情况发生?

您必须对窗口进行子类化,并覆盖以下方法:

- (BOOL)canBecomeKeyWindow {
    // because the window is borderless, we have to make it active
    return YES;
}

- (BOOL)canBecomeMainWindow {
    // because the window is borderless, we have to make it active
    return YES;
}

更新了Swift 4以及2018年如何实现这一点的一般提示:

NSWindow上不再存在
可以成为KeyWindow
可以成为MainWindow
方法。此后,它们被名为
canBecomeKey
canBecomeMain
的存储属性所取代。因为它们是存储的,所以如果要覆盖它们,可以通过将其设置为计算属性来实现,如下所示:

override var canBecomeKey: Bool {
    return true
}

override var canBecomeMain: Bool {
    return true
}