On Aug 18, 2012, at 1:40 PM, Kyle Sluder <[email protected]> wrote:
> This is a good start. I believe "user stylesheet" is the term of art for a
> local override stylesheet. From a quick Google, the relevant APIs are on the
> WebPreferences class: -setUserStyleSheetEnabled: and
> -setUserStyleSheetLocation:. You could start with one of the common "reset"
> stylesheets and customize it from there.
I tried that, but the settings in my css file are not used.
WebPreferences *prefs = [WebPreferences standardPreferences];
[prefs setJavaScriptEnabled: YES];
[prefs setCacheModel: WebCacheModelDocumentBrowser];
[prefs setPlugInsEnabled: YES];
NSString *path = [[NSBundle mainBundle] pathForResource: @"default" ofType:
@"css"];
NSURL *css = [NSURL URLWithString: path];
[prefs setUserStyleSheetEnabled: YES];
[prefs setUserStyleSheetLocation: css];
[self.webView setPreferences: prefs];
So I am now hacking in the DOM, and this way I can add my stylesheet:
NSError *error = nil;
DOMDocument* domDocument = [webView mainFrameDocument];
DOMElement* styleElement = [domDocument createElement: @"style"];
[styleElement setAttribute: @"type" value: @"text/css"];
NSString *path = [[NSBundle mainBundle] pathForResource: @"default"
ofType: @"css"];
NSString *css = [NSString stringWithContentsOfFile: path encoding:
NSUTF8StringEncoding error: &error];
DOMText *cssText = [domDocument createTextNode: css];
[styleElement appendChild: cssText];
DOMElement* headElement= (DOMElement*)[[domDocument
getElementsByTagName: @"head"] item:0];
[headElement appendChild:styleElement];
This way the css gets inserted into the DOM, but I still have the delay.
I am open for any suggestions/improvements :)
- Koen.
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]