[英]NSTextField should appear when another NSTextField gets focus
我有一個NSTextField,我從NSTextField繼承了它,我希望當我的TextField獲得焦點時出現一個新的NSTextField。 我更改了方法becomeFirstResponder
,該方法也有效,因為它在日志區域中顯示“ TextField獲得焦點”。
但是外觀/消失對我的第二個TextField不起作用。 它也連接在IB中。
這是代碼:
@interface MyNewTextField : NSTextField{
IBOutlet NSTextField* TestTextFiel;
}
MyNewTextField.m:
#import "SollkontoFeld.h"
@implementation SollkontoFeld
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
}
-(BOOL)becomeFirstResponder{
[testTextFiel setHidden:NO];
NSLog(@"TextField got focus");
return YES;
}
@end
該方法顯然可以正確執行,因為已打印了文本。 我假設我的出現/消失代碼是錯誤的。
首先,應通過使第二個文本字段開始在筆尖可見,來驗證第二個文本字段是否位於正確的位置,並且具有正確的布局約束等。 調用setHidden:YES
將其隱藏在方便的位置,例如awakeFromNib
,這樣一開始它就不可見; 但隨后您可以注釋掉setHidden:調用以使其在啟動時可見。 我最初的懷疑是setHidden:NO
調用工作正常,但是由於某些其他原因,文本字段不可見。
除此之外,您只需要檢查所有連接是否良好,對象是否保留等即可。我注意到您發布的代碼聲明了一個名為TestTextFiel
的出口,然后在testTextFiel
上調用setHidden:
testTextFiel
這是不一樣的–大小寫很重要。 您可能只是在您的becomeFirstResponder
方法中添加了一個testTextFiel
的NSLog
來驗證它是否存在; 如果是這樣,您可以NSLog
其superview
; 等。調試。 做一些偵探工作,找出問題所在。 你打電話后setHidden:NO
,文本字段應該存在,有權上海華盈,有一個無意義的幀,返回NO
來-hidden
等; 您可以在調試器中驗證所有這些內容。 如果仍然無法繪制,也許您需要調用setNeedsDisplay:
盡管我認為這沒有必要。 無論如何,對於stackoverflow來說,我們實際上不可能為您完成調試工作。 這是您需要學習的編程基本技能。 :->
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.