2015-05-23 22 views
0

我有一個簡單的桌面應用程序,在加載窗口時應該關注TextField。我有這個工作,但有點煩人的是,將用戶內容加載到TextField中後,該字段的全部內容會自動選中。用戶可能想要開始編輯內容,但他們很少/永遠不會想要一次全部替換它(設想一個文本編輯器在做這個,看看我的意思)。如何在swift中取消選擇TextField的內容

我看到有針對全選的行動:但我想是選擇無相反行動:

我試圖傳遞零到selectText方法,但是,這並不工作:

textField.selectText(nil) 

我在StackOverflow上找到了一些提到selectedTextRange的答案,但這看起來已經過時了,因爲Xcode 6.3並不認爲這是TextField上的有效屬性。

任何人都可以解釋我是如何做到這一點的?

回答

1

從我處理NSTextFields到這個級別已經有一段時間了(我最近主要在iOS上工作)。

做一個小挖我發現這個在網絡上後:

NSText* textEditor = [window fieldEditor:YES forObject:textField]; 
NSRange range = {start, length}; 
[textEditor setSelectedRange:range]; 

窗是包含你的領域,文本框的窗口。

這就要求字段編輯器管理你的字段,可以簡單地通過使用selectText:sender方法選擇字段的全部文本來完成。

+0

感謝,鄧肯!C – Subcreation

0

這裏是最後的SWIFT代碼,我得到了基於什麼工作鄧肯Ç發佈:

if let window = NSApplication.sharedApplication().mainWindow { 
    let textEditor = window.fieldEditor(true, forObject: textField)! 
    let range = NSRange(0..<0) 
    textEditor.selectedRange = range 
} 
相關問題