我希望首先从下面的链接下载该项目,然后继续问题(仅36kb)
一开始我的情况如下.
当我单击"我的办公室"按钮时,我正在调用actionSeenButton
将要打印的操作NSLog(@"actionSeenButton");
- (IBAction)actionSeenButton:(id)sender {
NSLog(@"actionSeenButton");
}
Run Code Online (Sandbox Code Playgroud)
这很完美.
当我点击显示隐藏按钮时,我按100滑动视图并显示我顶部的图像和按钮,如下图所示
使用的代码是
- (IBAction)showHiddenButton:(id)sender {
CGAffineTransform translation = CGAffineTransformIdentity;
translation = CGAffineTransformMakeTranslation(0, 100);
[UIView beginAnimations:nil context:nil];
self.view.transform = translation;
[UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)
当我点击这个按钮时,我正在调用actionHiddenButton
将要打印的动作NSLog(@"actionHiddenButton");
- (IBAction)actionHiddenButton:(id)sender {
NSLog(@"actionHiddenButton");
}
Run Code Online (Sandbox Code Playgroud)
但问题是,当我点击我看到的新按钮时,动作没有被调用.
知道为什么会这样吗?
当我将顶部隐藏按钮从y = -70移动到y = 170时,动作将被调用.
示例项目可以从这里下载
我想要实现的是,通过向下移动视图,在一行的顶部显示三个按钮(如菜单).
在我创建应用程序的过程中,xcode 不再允许我按住 Ctrl 键并将 UIButton 拖动到 VC 来创建 IBAction。每个 VC 都会发生这种情况(总共九个)。不过,它确实允许创建 Outlet。(请查看图片 -> 没有显示任何操作选择)
xcode 版本 7.2 (7C68) 构建目标是 ios9。
有没有办法来解决这个问题?
我有一个简单的例子。我使用 ctrl 将左 button1 和 label1 连接到控制器类。
如何以编程方式对右侧的 button2 label2 执行相同的操作(无需按住 ctrl 拖动)
那是我的代码:
class ViewController: NSViewController {
@IBOutlet weak var label1: NSTextField! //connected with ctrl-drag
@IBOutlet weak var button1: NSButton! //connected with ctrl-drag
@IBOutlet weak var label2: NSTextField! //not yet connected
@IBOutlet weak var button2: NSButton! //not yet connected
@IBAction func button1Pressed(_ sender: Any) //connected with ctrl-drag
{ label1.stringValue = "button-I"
button1.title = "pressed"
}
@IBAction func button2Pressed(_ sender: Any) //not yet connected
{ label2.stringValue = "button-II"
button2.title = …
Run Code Online (Sandbox Code Playgroud) 我如何创建IBOutlet
或IBAction
考虑以下条件:
IBAction
或者IBOutlet
必须在我的自定义类中创建(继承自NSObject
)NSButton
实例在里面是可见的 Interface Builder (XCode 4)
总之,我想从按钮添加点击动作到我的班级.
任何帮助appriciated,谢谢:)
编辑19.02.2012
我提出的问题没有提供所需的所有数据......我只需要阅读更多的可可指南......
我想从其他范围内连接组件,这是我不可能知道的:(
我是iOS编程的新手.
这是我的问题:
我想将一个新对象连接到现有的IBAction方法.例如,我想按钮执行相同的功能.
但是当我"控制 - 拖动"它时,它总是会让我插入作为一种新方法.如何添加到现有的而不是创建新的?
XCode中的快照
我有按钮:
...
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton setTitle:annotation.title forState:UIControlStateNormal];
rightButton.tag = myCustomNumber;
[rightButton addTarget:self action:@selector(showDetails:) forControlEvents:UIControlEventTouchUpInside];
...
Run Code Online (Sandbox Code Playgroud)
这是IBAction:
..
-(IBAction)showDetails:(id)sender{
// here I want to NSLOG button tag
}
...
Run Code Online (Sandbox Code Playgroud)
怎么做?
我正在以编程方式创建按钮,然后我想添加功能,当他们点击/按下它们时,除非再次点击,否则它们会保持高亮显示.我现在正在做的是创建按钮,然后尝试添加IBAction.但是,问题是我在方法中创建了按钮,然后我不确定如何在IBAction中引用该按钮.这是我的代码:
UIButton* testButn = [UIButton buttonWithType:UIButtonTypeCustom];
[testButn setFrame:CGRectMake(0, 135, 40, 38)];
[testButn setImage:[UIImage imageNamed:@"test_butn_un.png"] forState:UIControlStateNormal];
[testButn setImage:[UIImage imageNamed:@"test_butn_pressed.png"] forState:UIControlStateHighlighted];
[testButn addTarget:self action:@selector(staypressed:) forControlEvents:UIControlEventTouchUpInside];
[self.contentview addSubview:testButn
-(IBAction)staypressed:(id)sender{
//Not sure what to do here, since this method doesn't recognize testButn, How do I reference testButn
Run Code Online (Sandbox Code Playgroud) 我在执行代码的键盘上的返回键有问题.我在过去尝试过以下代码完美无缺:
func textFieldShouldReturn(textField: UITextField) -> Bool{
textField.resignFirstResponder()
valueOfLetter()
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,该线路上存在错误valueOfLetter
.
如果有必要,这是整个文件:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBOutlet weak var strWordValue: UILabel!
@IBOutlet weak var strInputField: UITextField!
func textFieldShouldReturn(textField: UITextField) -> Bool{
textField.resignFirstResponder()
valueOfLetter()
return true;
}
var TextField: UITextField!
func valueOfLetter(inputLetter: String) -> Int {
let alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", …
Run Code Online (Sandbox Code Playgroud) 我目前有一个包含一些动态行的表.当我运行probject时,行显示在屏幕上甚至有一个新闻动画,但是xcode不会让我将表行作为IBAction连接到它的控制器.我不能在这个例子中使用segue,它需要像按钮按下但最好是整个桌子上的rown我宁愿不插入按钮.任何帮助表示感谢,谢谢!
我知道这里的第二个按钮显示了助理编辑器:
我知道如何通过控件将Interface Out和Action从Interface Builder中的对象拖动到View Controller代码.理想情况下,它应该像文档看起来一样简单:
但是,当我按下"助手"编辑器时,这通常是我对Xcode的看法:
一个烂摊子.我必须尽量减少很多事情,尝试在视图中获取故事板对象,然后找到正确的View Controller.在我可以执行Control-drag之前所有这一切.
有没有办法在不使用助理编辑器的情况下建立连接?(最好不要在我自己输入很多代码.)
ibaction ×10
ios ×5
xcode ×4
iboutlet ×3
objective-c ×3
swift ×3
uibutton ×3
cocoa ×1
function ×1
iphone ×1
keyboard ×1
macos ×1
nsbutton ×1
uistoryboard ×1
uitableview ×1
uitextfield ×1
watchkit ×1