Скрыть кнопки от заголовка в какао - PullRequest
16 голосов
/ 24 августа 2009

В Руководстве по взаимодействию с людьми в Apple сказано:

альтернативный текст http://developer.apple.com/documentation/userexperience/Conceptual/AppleHIGuidelines/art/wn_panelcontrols.jpg

Как мне сделать самую первую заголовок на этом изображении (только с кнопкой закрытия). Отключение «Изменение размера» и «Свернуть» в IB только делает кнопки изменения размера / минимизации отключенными. Но я хочу, чтобы они исчезли. Как я могу это сделать?

Заранее спасибо.

Ответы [ 4 ]

38 голосов
/ 24 августа 2009

Я считаю, что это должно работать:

[[window standardWindowButton:NSWindowCloseButton] setHidden:YES];
[[window standardWindowButton:NSWindowMiniaturizeButton] setHidden:YES];
[[window standardWindowButton:NSWindowZoomButton] setHidden:YES];
5 голосов
/ 12 апреля 2017

для Свифта

window!.standardWindowButton(.miniaturizeButton)!.isHidden = true
window!.standardWindowButton(.zoomButton)!.isHidden = true
window!.standardWindowButton(.closeButton)!.isHidden = true

setHidden

1 голос
/ 23 марта 2018

Мне тоже нужно было это, но это видно при наведении мыши - Swift:

var trackingTag: NSTrackingRectTag?
override func mouseEntered(with theEvent: NSEvent) {
    if trackingTag == theEvent.trackingNumber {
        window!.standardWindowButton(.closeButton)!.alphaValue = 1.00
    }
}
override func mouseExited(with theEvent: NSEvent) {
    if trackingTag == theEvent.trackingNumber {
        window!.standardWindowButton(.closeButton)!.alphaValue = 0.01
    }
}
func updateTrackingAreas(_ establish : Bool) {
    if let tag = trackingTag {
        window!.standardWindowButton(.closeButton)!.removeTrackingRect(tag)
    }
    if establish, let closeButton = window!.standardWindowButton(.closeButton) {
        trackingTag = closeButton.addTrackingRect(closeButton.bounds, owner: self, userData: nil, assumeInside: false)
    }
}
override func windowDidLoad() {
    window!.ignoresMouseEvents = false
    updateTrackingAreas(true)
    window!.standardWindowButton(.closeButton)!.alphaValue = 0.01
}
func windowShouldClose(_ sender: Any) -> Bool {
    window!.ignoresMouseEvents = true
    updateTrackingAreas(false)
    return true
}

Видимость необходима, но незначительная - непрозрачность 0,01, чтобы область отслеживания была эффективной.

1 голос
/ 18 декабря 2015

другой путь ...

for (id subview in [self window].contentView.superview.subviews) {
    if ([subview isKindOfClass:NSClassFromString(@"NSTitlebarContainerView")]) {
        NSView *titlebarView = [subview subviews][0];
        for (id button in titlebarView.subviews) {
            if ([button isKindOfClass:[NSButton class]]) {
                [button setHidden:YES];
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...