2017-07-04 81 views
1

我有一個NSTextField,我想在插入點輸入文本。我具有不產生誤差的代碼:NSTextField insertText方法已被棄用,替換是什麼?

let str = "Abc" 
    myTextField.insertText(str) 

[編輯] 當在該領域有123 | 45(「|」表示該文本插入點),輸出應該是123ABC | 45。

不幸的是不工作,因爲它已被棄用。這裏是documentation。什麼是替代品?

請注意,這個問題是對的NSTextField不NSTextView,其中有在這裏一個問題:NSTextView's insertText method is deprecated in OS X v10.11. What is the replacement?

+0

你爲什麼不閱讀評論張貼在https://stackoverflow.com/questions/32787814/nstextviews-inserttext-method-is-deprecated-in-os-x-v10-11-what-is-the-替換? –

+0

嗨El Tomato,實際上我讀了bhaller的評論:「有了NSTextField,你需要與textfield的字段編輯器一起工作,這是一個NSTextView」但是說實話我不明白。 – Cue

+0

@Cue,當myTextField已經有'44'時,你需要'insertText'的輸出是什麼? –

回答

2

獲取文本字段在窗口中的字段編輯器,然後使用上insertText(_:, replacementRange:)

let textfield = NSTextField()... 
if let fieldEditor = textfield.window?.fieldEditor(false, for: textfield) as? NSTextView { 
    fieldEditor.insertText("abc", replacementRange: fieldEditor.selectedRange()) 
} 

澄清:這要求文本字段具有輸入焦點。如果其他字段具有輸入焦點,則字段編輯器將在其中插入文本。

+0

這對我來說很好。 –

+0

非常感謝Aderstedt,工作正常! – Cue

相關問題