2011-06-01 58 views
2

根據協議ref,當需要字段編輯器時,應該爲任何文本顯示對象調用windowWillReturnFieldEditor。事實上,我的窗口委託接收對這個方法的文本字段,按鈕,組合框等的調用 - 但從來沒有爲textviews。windowWillReturnFieldEditor從來沒有要求NSTextView

這是正常的嗎? NSTextView是否攜帶自己的字段編輯器並且從不請求它?或者我錯過了什麼?

- (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)anObject { 
    if ([anObject isKindOfClass:[NSTextView class]]) 
     printf("\nwinWillRtnFldEdtor called for some textview."); // never happens 
} 

回答

1

Drats。查看字段編輯器的內存地址,顯然每個textview確實都有自己獨特的字段編輯器(與共享公共字段編輯器的textfields不同),因此textviews永遠不會請求字段編輯器,也不會調用此方法。

這是不幸的,因爲我需要特殊的例程來設置多個不同的textview,然後它們纔會變爲活動狀態。 (用textfields做這件事更容易。)我能想到的最佳解決方法是在文字視圖中添加一個類似標籤的屬性。

+2

更準確地說,每個字段編輯器都有自己的'NSTextView'。一個字段編輯器是一個'NSTextView',它可以被重用於窗口中的所有文本字段。獨立'NSTextView'對象不需要字段編輯器,因爲它們是一個。 – 2011-06-02 02:39:42

+0

@Rob Keniger:注意。感謝您的澄清。 (文本結構有點令人困惑。) – Wienke 2011-06-02 19:05:01