如何在單擊NSTextField時使NSComboBox消失? 這是我使用的代碼:製作NSComboBox當單擊NSTextField時出現
類組合框:(在界面生成器作爲自定義類我NSComboBox) comboBox.h:
#import <Cocoa/Cocoa.h>
@interface comboBox1 : NSComboBox
-(void)Hide;
@end
comboBox.m:
#import "comboBox1.h"
@implementation comboBox1
-(void)Hide
{
[self setHidden:YES];
}
@end
類txtField:(作爲定製類爲我的NSTextField在界面生成器) txtField.h:
#import <Cocoa/Cocoa.h>
@interface txtField1 : NSTextField
@end
txtField.m:
#import "txtField1.h"
#import "comboBox1.h"
@implementation txtField1
-(void)mouseDown:(NSEvent *)theEvent
{
comboBox1 *obj = [[comboBox1 alloc] init];
[obj Hide];
}
@end
但它不工作:當單擊文本字段沒有任何反應。 謝謝你的建議。
謝謝你的男人! 現在終於在我的NIB中出現NSComboBox,但出現了一個問題:我希望它在用戶單擊NSTextField時立即出現。使用您提供的代碼,當用戶開始編寫(編輯)NSTextField的內容時,會出現NSComboBox。 任何解決方案? – rambodrahmani 2013-03-06 15:35:17
還有一個問題,你說: 既然你在使用IB,我假設你有一個帶有txtField1和comboBox1的View或WindowController。 我沒有這樣的事情。 – rambodrahmani 2013-03-06 15:36:21
@rambodrahmani當您單擊txtField1時,可以使用不同的選項讓NSComboBox顯示。最簡單的方法是在你已經使用的txtField1的'mouseDown:'方法中。 在txtField1的'delegate'中實現一個新的方法。在那個方法中,和你在' - (void)controlTextDidBeginEditing:(NSNotification *)obj'中做的一樣。接下來在txtField1的'mouseDown:'調用'delegate'上的那個方法' – 2013-03-06 15:59:42