OSX에는 WebKit이란 브라우저가 사용하기 편하도록 포함되어 있습니다. 대략 apple에서 KDE에서 따온 것을 다시 오픈소스로 공개한것 같은데요, 지난번에 rubycocoa에서 간단하게 윈도우를 만든것에 이어서 오늘은 여기에 WebView란 컨트롤을 붙여보았습니다.

결과는…

Window가 화면에 표시되기전에 URL를 로드하도록 했고 NSScrollView를 추가하지 않았어도 자체적으로 스크롤바까지 만들어서 보여줘서 깜짝 놀랐습니다. 주소를 입력하는 곳이나 앞으로, 뒤로 등등의 기능은 없지만 링크도 클릭되고 플래시도 보여주는군요.

애플은 오픈소스를 참 잘 활용하고 있습니다. 서로 윈윈할 수 있으면 좋겠네요.

참고로 초간단 소스. 먼저의 소스에 4행이 추가되었습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require 'osx/cocoa'
include OSX
require_framework 'Webkit'

if $0 == __FILE__ then
  app = NSApplication.sharedApplication()

  frame = [200.0, 300.0, 250.0, 100.0]
  win = NSWindow.alloc.initWithContentRect_styleMask_backing_defer(frame, 15, 2, 0)
  win.setTitle 'HelloWorld'
  win.setLevel(3)      # floating window

  browser = WebView.alloc.initWithFrame(win.frame)
  win.setContentView(browser)
  browser.mainFrame.loadRequest(NSURLRequest.requestWithURL(NSURL.URLWithString('http://www.daum.net')))
  NSNotificationCenter.defaultCenter.addObserver_selector_name_object(app, 'terminate:', NSWindowWillCloseNotification, nil)

  win.display()
  win.orderFrontRegardless()    ## but this one does

  app.run()    
end

+ Recent posts