0

我的NSButton子类中有这段代码:

-(void)mouseEntered:(NSEvent *)theEvent{
    NSLog(@"ENTER");
    NSString *myString = @"foo";
    [myTextField setStringValue:myString];
}
-(IBAction)changeStringValue:(id)sender{
    NSString *myString = @"foo";
    [myTextField setStringValue:myString];
}

IBAction 工作正常,但在myTextField内部调用的相同方法mouseEntered event不起作用。该事件正在运行(setString 除外),实际上我可以看到 NSLog,如果我插入NSLog(@"%@", myTextField.stringValue);,它会显示null. 有人有线索吗?

编辑:我注意到之前的 stringValue NSLog,如果插入-(void)awakeFromNib{...},即使只有一个MyButton类按钮,也会发生 2 次:一次是正确的,另一次是null. 我有点困惑。

Edit2:我已插入事件[self performSelectorOnMainThread:@selector(changeStringValue:) withObject:myTextField waitUntilDone:YES];内部和 changeStringValue 函数内部:现在将按钮悬停在我调用该函数的按钮上(我看到“运行”日志),但没有任何反应。该功能作为分配给按钮的已发送操作,仍然有效。我也试过,但它是一样的。mouseEnter:NSLog(@"Running");waitUntilDone:YES/NOwithObject:myTextField/self

4

0 回答 0