Запись в iframe из NSTextView - PullRequest
       13

Запись в iframe из NSTextView

0 голосов
/ 24 января 2009

Я создал веб-редактор WYSIWYG, к которому я программно обращаюсь из своего приложения для какао. В настоящее время я могу запускать сценарии и получать HTML-код из iFrame в редакторе, но не могу отправить текст из NSTextView в iFrame. Есть идеи?

Редактор здесь http://www.alexmillsdesign.com/Developer/FernEngine/

Приветствие Алекс Миллс

1 Ответ

0 голосов
/ 24 января 2009

Я не эксперт в этой области, но в прошлом я писал пример кода, который делал что-то похожее на это. Подход, который я выбрал, заключался в следующем: в вашем классе Какао, где вы хотите обновить код вставки текста, похожий на

WebScriptObject *webScriptObject = [_webView windowScriptObject];
id result = [webScriptObject callWebScriptMethod:@"setTableRows" withArguments:[NSArray arrayWithObject:fauxData]];

где fauxData - это то, что вы хотите передать в JS, а в источнике JS есть что-то похожее на

var mytable = document.getElementById("myTable");
var mytbody = document.getElementById("myTbody");
var docFragment = document.createDocumentFragment();
var myNewtbody = document.createElement("tbody");   
myNewtbody.id = "myTbody";

var trElem, tdElem, txtNode;
for(var j = 0; j < row_data.length; ++j) {
    trElem = document.createElement("tr");
    trElem.className = "tr" + (j%2);

    tdElem = document.createElement("td");
    tdElem.className = "col0";
    txtNode = document.createTextNode(row_data[j].lastName);
    tdElem.appendChild(txtNode);
    trElem.appendChild(tdElem);

    tdElem = document.createElement("td");
    tdElem.className = "col4";
    txtNode = document.createTextNode(row_data[j].firstName);
    tdElem.appendChild(txtNode);
    trElem.appendChild(tdElem);

    docFragment.appendChild(trElem);
}
myNewtbody.appendChild(docFragment);
mytable.replaceChild(myNewtbody, mytbody);

и, конечно, ваш HTML должен иметь что-то вроде

<table id="myTable">

<thead id="myThead">
<tr>
<th>Last</th>
<th>First</th>
</tr>
</thead>

<tbody id="myTbody">
</tbody>

</table>

Очевидно, это заполняет строки данных в таблице, но обновление текста будет аналогичным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...