2011-04-07 52 views
14

如何將事件附加到NSTextField,以便單擊它時?那裏有沒有例子?將單擊操作添加到NSTextField

+0

當用戶點擊文本字段或當用戶輸入文本字段時(例如通過點擊它或鍵入Tab)? – 2011-04-08 09:41:40

+0

當用戶點擊文本字段時。 – AdamB 2011-04-08 18:14:36

+0

看看http://stackoverflow.com/questions/684166/which-delegate-method-i-should-use-to-respond-to-clicks-on-a-nstextfield – Ryan 2012-01-01 07:36:45

回答

0

你正在尋找的方法是 - textShouldBeginEditing:

你要設置的NSTextField的代表,首先。

+1

有什麼我可以看的例子嗎? – AdamB 2011-04-08 00:12:27

+23

'-control:textShouldBeginEditing:'當用戶單擊文本字段時不發送。它在用戶開始在文本字段中輸入文本時發送。 – 2011-04-08 09:51:37

7

你可以試試這個:它適用於我。

@interface customTextField : NSTextField 
    @property (strong) id target; 
    @end 

    @implementation customTextField 

    - (void)mouseDown:(NSEvent *)theEvent 
    { 
     [self sendAction:@selector(clickAction:) to:[self target]]; 
    } 

    @end 

謝謝。

+0

最好使用目標的動作。你可以通過CTRL +拖動設置它來源代碼的行動。 [self sendAction:self.action to:self.target]; – Borzh 2015-09-21 01:53:08

+2

你不應該複製他人的答案。它的原始來源是:http://stackoverflow.com/questions/9184555/click-on-nstextfield-label-to-emulate-hyperlink-to-a-folder – 2015-12-23 09:10:20

+0

我沒有複製,它的巧合,該鏈接也給了同樣的答案。 – 2016-04-08 13:24:35

3
NSClickGestureRecognizer *click = [[NSClickGestureRecognizer alloc] initWithTarget:self action:@selector(myTextFieldClicked:)]; 
[self.myTextField addGestureRecognizer:click]; 
+0

偉大的解決方案。不需要子類。 – adev 2017-11-11 00:32:54

+0

我真的很喜歡這個,但似乎不適用於無法選擇或編輯的靜態文本字段,真的好奇爲什麼!? – Hofi 2017-12-07 16:49:47

相關問題