require 'hotcocoa'
class Application
  include HotCocoa
  FULL={:expand => [:width,:height]}
  SHOW=[0,0,0,100]
  def start
    application :name => "MyTableView" do |app|
      app.delegate = self
      window(:title => "MyTableView",
        :frame => [10, 620, 330, 230]) do |win|
        win << split_view(:horizontal => true,
          :layout => FULL,:frame=>SHOW) do |sp|
          sp << sc=scroll_view(:frame => SHOW)
          sc << @tv=table_view(:data=>[],:columns=>[])
          sp << @pr=text_field(:text => 'type here',
            :font => font(:name=>'Monaco', :size => 16),
            :on_action => Proc.new {|t| type(t.to_s)})
        end #sp
        win.contentView.margin = 5
        win.makeFirstResponder @pr
        win.will_close { exit }
      end #window (win)
    end #application
  end
  def type(t)
    values={}
    t.split.each_with_index do |v,i|
      values["c#{i}"]=v
      if i >= @tv.tableColumns.size
        @tv.tableColumns << column(:id=>"c#{i}",
          :title=>"Word #{i+1}")
      end
    end
    @tv.dataSource.data << values
    @tv.reloadData
  end
end
Application.new.start

#thanks again to everburning.com

require 'hotcocoa'
class Application
  include HotCocoa
  FULL={:expand => [:width,:height]}
  SHOW=[0,0,0,100]
  def start
    application :name => "MyTableView" do |app|
      app.delegate = self
      window(:title => "MyTableView",
        :frame => [10, 620, 330, 230]) do |win|
        win << split_view(:horizontal => true,
          :layout => FULL,:frame=>SHOW) do |sp|
          sp << sc=scroll_view(:frame => SHOW)
          sc << @tv=table_view(:data=>[],:columns=>[])
          sp << @pr=text_field(:text => 'type here',
            :font => font(:name=>'Monaco', :size => 16),
            :on_action => Proc.new {|t| type(t.to_s)})
        end #sp
        win.contentView.margin = 5
        win.makeFirstResponder @pr
        win.will_close { exit }
      end #window (win)
    end #application
  end
  def type(t)
    values={}
    t.split.each_with_index do |v,i|
      values["c#{i}"]=v
      if i >= @tv.tableColumns.size
        @tv.tableColumns << column(:id=>"c#{i}",
          :title=>"Word #{i+1}")
      end
    end
    @tv.dataSource.data << values
    @tv.reloadData
  end
end
Application.new.start
#thanks again to everburning.com