Ответ 1
Да, просто установите свойство drawsBackground
вашего экземпляра WebView
на NO
, затем обязательно заполните части страницу, которую вы хотите непрозрачно с помощью CSS.
В Objective-C
с Mac OSX
Cocoa
, есть ли способ сделать a DIV
на WebView
немного полупрозрачным, чтобы десктопные приложения за окном слегка просачивались, но только на этом DIV
а не остальные WebView
?
Или, может быть, я могу сделать весь WebView полупрозрачным, но отключить его для всех DIV
, кроме одного DIV
?
У меня есть WebView
загрузка веб-страницы. На веб-странице у меня есть боковая панель слева, а затем IFRAME
справа. Я нажимаю элементы на боковой панели, и они меняют страницы IFRAME
справа. Это эта боковая панель, которую я хочу сделать полупрозрачной.
В моем AppDelegate.m
у меня есть это до сих пор, а теги HTML
и BODY
установлены на background:none
, а на моей боковой панели установлено значение background:rgba(0,0,0,0.5)
, но все, что я вижу, это серый боковой фон. Он, как и сам веб-просмотр, хочет убедиться, что на его фоне установлен цвет, отличный от прозрачного.
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// note that _window and _wv are outlet properties to my window and webview widgets
[_window setBackgroundColor:[NSColor clearColor]];
[_window setOpaque:NO];
[_wv.layer setBackgroundColor:[NSColor clearColor].CGColor];
[_wv.layer setOpaque:NO];
}
Да, просто установите свойство drawsBackground
вашего экземпляра WebView
на NO
, затем обязательно заполните части страницу, которую вы хотите непрозрачно с помощью CSS.
http://stylekit.org/blog/2016/01/23/Chromeless-window/
NSFullSizeContentViewWindowMask
(чтобы полупрозрачность также была видна в области заголовка, оставьте это, а область заголовка будет пустым)self.titlebarAppearsTransparent = true
(скрывает графику заголовка по умолчанию).
let visualEffectView = NSVisualEffectView(frame: NSMakeRect(0, 0, 0, 0))//<---the width and height is set to 0, as this doesn't matter.
visualEffectView.material = NSVisualEffectMaterial.AppearanceBased//Dark,MediumLight,PopOver,UltraDark,AppearanceBased,Titlebar,Menu
visualEffectView.blendingMode = NSVisualEffectBlendingMode.BehindWindow//I think if you set this to WithinWindow you get the effect safari has in its TitleBar. It should have an Opaque background behind it or else it will not work well
visualEffectView.state = NSVisualEffectState.Active//FollowsWindowActiveState,Inactive
self.contentView = visualEffectView/*you can also add the visualEffectView to the contentview, just add some width and height to the visualEffectView, you also need to flip the view if you like to work from TopLeft, do this through subclassing*/