Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSViewController.view(子视图)设置标签_Objective C_Cocoa_Nsview_Subview_Nsviewcontroller - Fatal编程技术网

Objective c NSViewController.view(子视图)设置标签

Objective c NSViewController.view(子视图)设置标签,objective-c,cocoa,nsview,subview,nsviewcontroller,Objective C,Cocoa,Nsview,Subview,Nsviewcontroller,每次我按下一个按钮,mainController都会调用[self.view addSubview:createCustomView.view]。这里一切都很好。问题是我需要在我创建的每个子视图上放置一个标记,以便以后检索它们。我已经试过了: MainController.m NSNumber *i; createCustomView.view.tag = i; //readonly 我真正想做的是: int i; [createCustomView.view setTag:i]; 但是s

每次我按下一个按钮,mainController都会调用[self.view addSubview:createCustomView.view]。这里一切都很好。问题是我需要在我创建的每个子视图上放置一个标记,以便以后检索它们。我已经试过了:

MainController.m

NSNumber *i;
createCustomView.view.tag = i; //readonly
我真正想做的是:

int i;
[createCustomView.view setTag:i];
但是setTag方法不存在。我的问题是:除了使用标识符字符串(这会给我的情况带来一些问题)之外,还有其他方法可以做到这一点吗

提前谢谢

这是控制器的.h文件

#import <Foundation/Foundation.h>
#import "TransactionButtonView.h"
@class TransactionButtonController;
@interface TransactionViewController : NSViewController
{
TransactionButtonController *transactionButtonController;
}
-(IBAction)createOnPushButton:(id)sender;
-(void)recalculatePositionOnRemove:(long)tag;

@property (nonatomic,assign) TransactionButtonController *transactionButtonController;

@end
#import "TransactionViewController.h"
#import "TransactionButtonController.h"
#import "MainController.h"
@implementation TransactionViewController
@synthesize transactionButtonController;

-(IBAction)createOnPushButton:(id)sender
{
transactionButtonController = [[TransactionButtonController alloc] initWithNibName:@"TransactionButton" bundle:nil];
NSPoint originPoint;

for (int i=1; i <= [[self.view subviews]count]; i++) {
        originPoint.y = transactionButtonController.view.bounds.origin.y + self.view.bounds.size.height - transactionButtonController.view.bounds.size.height*i;
transactionButtonController.view.tag = i; // Here's the PROBLEM!!!
    [[transactionButtonController view]setIdentifier:[[NSNumber numberWithInt:i]stringValue]]; //here's the not good option

}
originPoint.x = transactionButtonController.view.bounds.origin.x;
[[transactionButtonController view] setFrameOrigin:originPoint];
[self.view addSubview:transactionButtonController.view];
[transactionButtonController sendVarsToButton:@"xxx" :@"591" :5 :87456356472456];

}

-(void)recalculatePositionOnRemove:(long)tag
{
NSPoint originPoint;
for (long i = tag; i<[[self.view subviews]count]; i++) {

    originPoint.y = transactionButtonController.view.bounds.origin.y +self.view.bounds.size.height - transactionButtonController.view.bounds.size.height*i;
    originPoint.x = transactionButtonController.view.bounds.origin.x;


     [[transactionButtonController.view viewWithTag:i+1] setFrameOrigin:originPoint];
}
}

@end 
#导入
#导入“TransactionButtonView.h”
@类TransactionButtonController;
@接口事务视图控制器:NSViewController
{
TransactionButtonController*TransactionButtonController;
}
-(iAction)CreateOnButton:(id)发送方;
-(void)重新存储取消删除:(长)标记;
@属性(非原子,赋值)TransactionButtonController*TransactionButtonController;
@结束
这是控制器的.m文件

#import <Foundation/Foundation.h>
#import "TransactionButtonView.h"
@class TransactionButtonController;
@interface TransactionViewController : NSViewController
{
TransactionButtonController *transactionButtonController;
}
-(IBAction)createOnPushButton:(id)sender;
-(void)recalculatePositionOnRemove:(long)tag;

@property (nonatomic,assign) TransactionButtonController *transactionButtonController;

@end
#import "TransactionViewController.h"
#import "TransactionButtonController.h"
#import "MainController.h"
@implementation TransactionViewController
@synthesize transactionButtonController;

-(IBAction)createOnPushButton:(id)sender
{
transactionButtonController = [[TransactionButtonController alloc] initWithNibName:@"TransactionButton" bundle:nil];
NSPoint originPoint;

for (int i=1; i <= [[self.view subviews]count]; i++) {
        originPoint.y = transactionButtonController.view.bounds.origin.y + self.view.bounds.size.height - transactionButtonController.view.bounds.size.height*i;
transactionButtonController.view.tag = i; // Here's the PROBLEM!!!
    [[transactionButtonController view]setIdentifier:[[NSNumber numberWithInt:i]stringValue]]; //here's the not good option

}
originPoint.x = transactionButtonController.view.bounds.origin.x;
[[transactionButtonController view] setFrameOrigin:originPoint];
[self.view addSubview:transactionButtonController.view];
[transactionButtonController sendVarsToButton:@"xxx" :@"591" :5 :87456356472456];

}

-(void)recalculatePositionOnRemove:(long)tag
{
NSPoint originPoint;
for (long i = tag; i<[[self.view subviews]count]; i++) {

    originPoint.y = transactionButtonController.view.bounds.origin.y +self.view.bounds.size.height - transactionButtonController.view.bounds.size.height*i;
    originPoint.x = transactionButtonController.view.bounds.origin.x;


     [[transactionButtonController.view viewWithTag:i+1] setFrameOrigin:originPoint];
}
}

@end 
#导入“TransactionViewController.h”
#导入“TransactionButtonController.h”
#导入“MainController.h”
@实现TransactionViewController
@综合事务按钮控制器;
-(iAction)CreateOnButton:(id)发送方
{
transactionButtonController=[[transactionButtonController alloc]initWithNibName:@“TransactionButton”捆绑包:nil];
点原点;

对于(int i=1;i如果要向视图添加标记,请执行以下操作:

theView.tag = 1;
要删除它,请执行以下操作:

[[myParentView viewWithTag:1] removeFromSuperview]

事实上,我无法让它工作。每次我都会出现错误:“setter方法需要赋值…”或“只读”。