小编Ben*_*ins的帖子

UIButton上的详细披露指标

有没有一种简单的方法在UIButton上放置详细信息披露图标?我正在使用导航控制器,我想按下按钮按下堆栈上的新视图,所以我认为详细的披露图标是合适的,但我还没有找到一种简单的方法来做到这一点.

我想到的是像Clock应用程序的Timer子视图中的"When Timer Ends"按钮.

iphone

3
推荐指数
1
解决办法
7383
查看次数

带有nib作为子视图的自定义视图似乎没有加载

我创建了一个自定义视图,从nib加载其内容,如下所示:

/* PricingDataView.h */

#import <UIKit/UIKIt.h>

@interface PricingDataView : UIView {
  UIView *contentView;
}
@property (nonatomic, retain) IBOutlet UIView *contentView;
@end

/* PricingDataView.m */

#import "PricingDataView.h"

@implementation PricingDataView
@synthesize contentView;

- (id)initWithFrame:(CGRect)frame {
  if ((self = [super initWithFrame:frame])) {
    [[NSBundle mainBundle] loadNibNamed:@"PricingDataView" owner:self options:nil];
    [contentView setFrame:frame];
    [self addSubview:contentView];
  }
  return self;
}

/* ... */
Run Code Online (Sandbox Code Playgroud)

在nib文件中,我设置PricingDataView为文件所有者的类型,并连接contentViewIB中的插座.我将UIView接口库中的常规放置到显示给用户的全尺寸视图,然后将其类名更改为PricingDataView.它全部构建,但在运行时,我的自定义视图应该是什么都没有呈现.

我把断点放进去PricingDataView.initWithFrame,但它们没有击中,所以我知道我错过了会导致视图被初始化的东西.我很好奇的是,在从nib加载我的其他视图的过程中,所有的初始化都发生在我身上,但不是这个.为什么?

iphone views objective-c interface-builder nib

3
推荐指数
1
解决办法
3993
查看次数

从UINavigationController堆栈弹出时,UITableViewController有特殊行为吗?

我在标签栏应用程序中看到了一个奇怪的似乎过度释放的问题.我对此问题描述的复杂性表示歉意.希望一些示例代码可以提供帮助.

我将我的应用程序委托MyAppDelegate设置为UITabBarControllerDelegate:

- (BOOL)tabBarController:(UITabBarController *)tabBarControllerIn shouldSelectViewController:(UIViewController *)viewController {
    return YES;
}

- (void)tabBarController:(UITabBarController *)tabBarControllerIn didSelectViewController {
    if ([viewController isKindOfClass:[UINavigationController class]]) {
        UINavigationController *navController = (UINavigationController *)viewController;
        [navController popToRootViewControllerAnimated:NO];
    }
}
Run Code Online (Sandbox Code Playgroud)

选项卡栏视图设置UINavigationController为5个选项卡中的每一个.配置的for选项卡4中的根视图控制器(调用它CrashingViewController)UINavigationController是从UIViewController和支持子视图的协议UITableViewDataSourceUITableViewDelegate协议派生的,UITableView子视图只是一个4行表,每个单元允许用户导航到另一个视图.在-[UITableViewDelegate tableView:didSelectRowAtIndexPath:]:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    ASubViewController1 *svc1;
    ASubViewController2 *svc2;  // this one inherits from UITableViewController;
    ASubViewController3 *svc3;
    ASubViewController4 *svc4;

    switch (indexPath.row) {
        case 1:
            svc1 = [[ASubViewController1 …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c uikit ios4

3
推荐指数
1
解决办法
982
查看次数

目标C中的多态方法

在Java中,您可以将多个构造函数放入一个被调用的类中,这取决于构造实例时使用的参数的类型和/或数量.我假设在Objective C中有等价物.

我可以使用多态方法吗?

我想构建一个方法,根据字符串是传递还是双精度,行为略有不同?

这听起来有点疯狂吗?还是容易?

overloading objective-c

3
推荐指数
1
解决办法
3572
查看次数

2
推荐指数
1
解决办法
186
查看次数

MPMusicPlayerController没有发布通知?

我正在尝试使用MPMusicPlayerController播放音乐,我也希望收到通知MPMusicPlayerControllerPlaybackStateDidChange.我设置我的播放器和通知注册就像样本一样(有效,BTW - 它正确接收通知):

- (id) initWithPlaylist:(MPMediaPlaylist*)list {
    if (self = [super init]) {
        player = [MPMusicPlayerController applicationMusicPlayer];
        [player retain];

        NSLog(@"setting up player");
        [plaayer setQueueWithItemCollection:list];
        [player setShuffleMode:MPMusicShuffleModeOff];
        [player setRepeatMode:MPMusicRepeatModeNone];

        NSLog(@"registering MPMusicPlayerController Notifications");
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(handle_itemChanged:) 
                                                     name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification 
                                                   object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(handle_stateChanged:)
                                                     name:MPMusicPlayerControllerPlaybackStateDidChangeNotification
                                                   object:nil];

        NSLog(@"turning on player notifications");
        [player beginGeneratingPlaybackNotifications];
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了很多bupkis.这些方法handle_itemChanged:handle_stateChanged:是除了一个是空洞的NSLog声明,表明他们已经被击中,而且也从未出现,他们被打到.将按预期将NSLog语句initWithPlaylist:打印到日志中.以上只是我的应用程序中的业务对象.它不是视图或视图控制器.

有任何想法吗?奇怪的是,AddMusic样本对我来说效果很好,而且我不能说我MPMusicPlayerController对它及其通知做了什么不同的事情.

更新:我在我的应用代理中添加了这一行,以查看大量的通知:

[[NSNotificationCenter defaultCenter] addObserverForName:nil object:nil queue:nil usingBlock:^(NSNotification *n) …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch ios

2
推荐指数
1
解决办法
2643
查看次数

如何在Objective-c中将NSdictionary表示为文字?

就像:

"APP_INFO" : {
            "v":"2.0",
            "appid":"1",
            "lang":"zh-Hans",
             }
Run Code Online (Sandbox Code Playgroud)

我不能使用init方法,因为它不是编译时常量.

objective-c

2
推荐指数
2
解决办法
3461
查看次数

使用 FParsec,如何在解析器之间使用 manyCharsTill 而不会在结束字符串上失败?

我正在尝试使用 FParsec 来解析 TOML 多行字符串,但在使用结束分隔符 ( """) 时遇到了问题。我有以下解析器:

let controlChars = 
    ['\u0000'; '\u0001'; '\u0002'; '\u0003'; '\u0004'; '\u0005'; '\u0006'; '\u0007';
     '\u0008'; '\u0009'; '\u000a'; '\u000b'; '\u000c'; '\u000d'; '\u000e'; '\u000f';
     '\u0010'; '\u0011'; '\u0012'; '\u0013'; '\u0014'; '\u0015'; '\u0016'; '\u0017';
     '\u0018'; '\u0019'; '\u001a'; '\u001b'; '\u001c'; '\u001d'; '\u001e'; '\u001f';
     '\u007f']

let nonSpaceCtrlChars =
    Set.difference (Set.ofList controlChars) (Set.ofList ['\n';'\r';'\t'])

let multiLineStringContents : Parser<char,unit> =
    satisfy (isNoneOf nonSpaceCtrlChars)

let multiLineString         : Parser<string,unit> =
    optional newline >>. manyCharsTill multiLineStringContents (pstring "\"\"\"")
    |> between (pstring "\"\"\"") (pstring "\"\"\"") 

let …
Run Code Online (Sandbox Code Playgroud)

f# parsing fparsec

2
推荐指数
1
解决办法
327
查看次数

WPF GroupBox隐藏/显示扩展按钮?

是否有像System.Windows.Controls.GroupBox这样的控件可以隐藏其内容并只显示名称和扩展按钮?

wpf expander

1
推荐指数
1
解决办法
5926
查看次数